Report generated on 18-Sep-2020 at 17:19:05 by pytest-html v2.1.1
| Packages | {"pluggy": "0.13.1", "py": "1.9.0", "pytest": "6.0.2"} |
| Platform | Linux-4.19.76-linuxkit-x86_64-with-glibc2.2.5 |
| Plugins | {"excel": "1.4.1", "forked": "1.3.0", "html": "2.1.1", "json": "0.4.0", "metadata": "1.10.0", "sugar": "0.9.4", "xdist": "2.1.0"} |
| Python | 3.8.5 |
200 tests ran in 55.39 seconds.
(Un)check the boxes to filter the results.
196 passed, 16 skipped, 4 failed, 0 errors, 0 expected failures, 0 unexpected passes| Result | Device | Test | Description | Duration |
|---|---|---|---|---|
| No results found. Try to check the filters | ||||
| Failed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceMtuTests::test_if_intf_mtu_is_correct_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no inDiscards | 0.08 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 self = <tests.interface.test_interface.InterfaceMtuTests object at 0x7f4f44547040> dut = {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-C...TEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, ...}} tests_definitions = {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'description': 'Verify the interfaces of interest protoc...rify username is set correctly', 'expected_output': True, 'name': 'test_if_usernames_are_configured_on_', ...}]}, ...]} def test_if_intf_mtu_is_correct_on_(self, dut, tests_definitions): """ Verify the interfaces of interest have no inDiscards Args: dut (dict): Encapsulates dut details including name, connection """ test_parameters = tests_tools.get_parameters(tests_definitions, TEST_SUITE) expected_output = test_parameters["expected_output"] dut_name = dut['name'] interfaces_list = dut["output"]["interface_list"] show_cmd = test_parameters["show_cmd"] tests_tools.verify_show_cmd(show_cmd, dut) show_cmd_txt = dut["output"][show_cmd]['text'] print(f"\nOn router |{dut_name}|:") for interface in interfaces_list: interface_name = interface['interface_name'].replace(" ", "") int_ptr = dut["output"][show_cmd]['json']['interfaces'] actual_output = int_ptr[interface_name]['mtu'] output_msg = (f"On interface |{interface_name}|: interface " f"MTU is |{actual_output}|, correct MTU is " f"|{expected_output}|") test_result = actual_output == expected_output comment = (f'TEST if interface |{interface_name}| MTU is correct ' f'on |{dut_name}|.\nGIVEN MTU of |{expected_output}|.\n' f'WHEN interface MTU is |{actual_output}|.\nTHEN test ' f'case result is |{test_result}|.\nOUTPUT of ' f'|{show_cmd}| is:\n\n{show_cmd_txt}') test_parameters['comment'] = comment print(f" - {output_msg}\n{comment}") test_parameters["fail_reason"] = "" if not test_result: test_parameters["fail_reason"] = output_msg tests_tools.write_results(test_parameters, dut_name, TEST_SUITE, actual_output, test_result, test_parameters["fail_reason"]) > assert actual_output == expected_output E assert 1500 == 10178 E +1500 E -10178 tests/interface/test_interface.py:761: AssertionError -------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178| TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|. GIVEN MTU of |10178|. WHEN interface MTU is |1500|. THEN test case result is |False|. OUTPUT of |show interfaces| is: Ethernet1 is up, line protocol is up (connected) Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4) Internet address is 11.201.12.101/24 Broadcast address is 255.255.255.255 Address determined by DHCP IP MTU 1500 bytes (default) Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 36 days, 15 hours, 58 minutes, 58 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec 70991357 packets input, 8866267671 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 79207233 packets output, 15115021169 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet100 is up, line protocol is up (connected) Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae) Internet address is 11.201.8.1/22 Broadcast address is 255.255.255.255 IP MTU 1400 bytes , BW 10000000 kbit Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a Up 36 days, 15 hours, 58 minutes, 56 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec 0 packets input, 0 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 0 packets output, 0 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Loopback0 is up, line protocol is up (connected) Hardware is Loopback Internet address is 11.201.0.2/32 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 15 hours, 56 minutes, 17 seconds Loopback10 is up, line protocol is up (connected) Hardware is Loopback Internet address is 198.18.0.36/24 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 15 hours, 59 minutes, 21 seconds -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'} INFO root:tests_tools.py:370 Verify if show command |show interfaces| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_mtu_is_correct_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:525 Create test case test_if_intf_mtu_is_correct_on_ in results file INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_mtu_is_correct_on_ with parameters {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces', 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'actual_output': 1500, 'test_result': False, 'dut': 'kg-topology-CloudEosRR1'} | ||||
| Failed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceMtuTests::test_if_intf_mtu_is_correct_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no inDiscards | 0.17 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 self = <tests.interface.test_interface.InterfaceMtuTests object at 0x7f4f443a2dc0> dut = {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-C...TEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, ...}} tests_definitions = {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'description': 'Verify the interfaces of interest protoc...rify username is set correctly', 'expected_output': True, 'name': 'test_if_usernames_are_configured_on_', ...}]}, ...]} def test_if_intf_mtu_is_correct_on_(self, dut, tests_definitions): """ Verify the interfaces of interest have no inDiscards Args: dut (dict): Encapsulates dut details including name, connection """ test_parameters = tests_tools.get_parameters(tests_definitions, TEST_SUITE) expected_output = test_parameters["expected_output"] dut_name = dut['name'] interfaces_list = dut["output"]["interface_list"] show_cmd = test_parameters["show_cmd"] tests_tools.verify_show_cmd(show_cmd, dut) show_cmd_txt = dut["output"][show_cmd]['text'] print(f"\nOn router |{dut_name}|:") for interface in interfaces_list: interface_name = interface['interface_name'].replace(" ", "") int_ptr = dut["output"][show_cmd]['json']['interfaces'] actual_output = int_ptr[interface_name]['mtu'] output_msg = (f"On interface |{interface_name}|: interface " f"MTU is |{actual_output}|, correct MTU is " f"|{expected_output}|") test_result = actual_output == expected_output comment = (f'TEST if interface |{interface_name}| MTU is correct ' f'on |{dut_name}|.\nGIVEN MTU of |{expected_output}|.\n' f'WHEN interface MTU is |{actual_output}|.\nTHEN test ' f'case result is |{test_result}|.\nOUTPUT of ' f'|{show_cmd}| is:\n\n{show_cmd_txt}') test_parameters['comment'] = comment print(f" - {output_msg}\n{comment}") test_parameters["fail_reason"] = "" if not test_result: test_parameters["fail_reason"] = output_msg tests_tools.write_results(test_parameters, dut_name, TEST_SUITE, actual_output, test_result, test_parameters["fail_reason"]) > assert actual_output == expected_output E assert 1500 == 10178 E +1500 E -10178 tests/interface/test_interface.py:761: AssertionError -------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178| TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|. GIVEN MTU of |10178|. WHEN interface MTU is |1500|. THEN test case result is |False|. OUTPUT of |show interfaces| is: Ethernet1 is up, line protocol is up (connected) Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756) Internet address is 11.201.13.101/24 Broadcast address is 255.255.255.255 Address determined by DHCP IP MTU 1500 bytes (default) Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 36 days, 15 hours, 59 minutes, 3 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec 72053959 packets input, 8989490394 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 80748895 packets output, 15246095148 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet100 is up, line protocol is up (connected) Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f) Internet address is 11.201.8.1/22 Broadcast address is 255.255.255.255 IP MTU 1400 bytes , BW 10000000 kbit Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a Up 36 days, 15 hours, 59 minutes, 1 second Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec 0 packets input, 0 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 0 packets output, 0 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Loopback0 is up, line protocol is up (connected) Hardware is Loopback Internet address is 11.201.0.4/32 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 15 hours, 56 minutes, 30 seconds Loopback10 is up, line protocol is up (connected) Hardware is Loopback Internet address is 198.18.0.38/24 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 15 hours, 59 minutes, 24 seconds -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'} INFO root:tests_tools.py:370 Verify if show command |show interfaces| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_mtu_is_correct_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_if_intf_mtu_is_correct_on_ exists in results file at index 12 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_mtu_is_correct_on_ with parameters {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces', 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'actual_output': 1500, 'test_result': False, 'dut': 'kg-topology-CloudEosRR2'} | ||||
| Failed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceMtuTests::test_if_intf_mtu_is_correct_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no inDiscards | 0.35 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 self = <tests.interface.test_interface.InterfaceMtuTests object at 0x7f0870c1f8e0> dut = {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-...TEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, ...}} tests_definitions = {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'description': 'Verify the interfaces of interest protoc...rify username is set correctly', 'expected_output': True, 'name': 'test_if_usernames_are_configured_on_', ...}]}, ...]} def test_if_intf_mtu_is_correct_on_(self, dut, tests_definitions): """ Verify the interfaces of interest have no inDiscards Args: dut (dict): Encapsulates dut details including name, connection """ test_parameters = tests_tools.get_parameters(tests_definitions, TEST_SUITE) expected_output = test_parameters["expected_output"] dut_name = dut['name'] interfaces_list = dut["output"]["interface_list"] show_cmd = test_parameters["show_cmd"] tests_tools.verify_show_cmd(show_cmd, dut) show_cmd_txt = dut["output"][show_cmd]['text'] print(f"\nOn router |{dut_name}|:") for interface in interfaces_list: interface_name = interface['interface_name'].replace(" ", "") int_ptr = dut["output"][show_cmd]['json']['interfaces'] actual_output = int_ptr[interface_name]['mtu'] output_msg = (f"On interface |{interface_name}|: interface " f"MTU is |{actual_output}|, correct MTU is " f"|{expected_output}|") test_result = actual_output == expected_output comment = (f'TEST if interface |{interface_name}| MTU is correct ' f'on |{dut_name}|.\nGIVEN MTU of |{expected_output}|.\n' f'WHEN interface MTU is |{actual_output}|.\nTHEN test ' f'case result is |{test_result}|.\nOUTPUT of ' f'|{show_cmd}| is:\n\n{show_cmd_txt}') test_parameters['comment'] = comment print(f" - {output_msg}\n{comment}") test_parameters["fail_reason"] = "" if not test_result: test_parameters["fail_reason"] = output_msg tests_tools.write_results(test_parameters, dut_name, TEST_SUITE, actual_output, test_result, test_parameters["fail_reason"]) > assert actual_output == expected_output E assert 1500 == 10178 E +1500 E -10178 tests/interface/test_interface.py:761: AssertionError -------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178| TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|. GIVEN MTU of |10178|. WHEN interface MTU is |1500|. THEN test case result is |False|. OUTPUT of |show interfaces| is: Ethernet1 is up, line protocol is up (connected) Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6) Internet address is 11.201.14.101/25 Broadcast address is 255.255.255.255 Address determined by DHCP IP MTU 1500 bytes (default) Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 36 days, 15 hours, 59 minutes, 16 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec 142372983 packets input, 16704049845 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 169440803 packets output, 36196207269 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet2 is up, line protocol is up (connected) Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316) Internet address is 11.201.14.201/25 Broadcast address is 255.255.255.255 IP MTU 9000 bytes Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 36 days, 15 hours, 59 minutes, 16 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec 160820429 packets input, 29266524683 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 142184931 packets output, 16792422526 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet2.102 is up, line protocol is up (connected) Hardware is Subinterface, address is 023d.7650.e316 Internet address is 11.201.14.201/25 Broadcast address is 255.255.255.255 IP MTU 9000 bytes (default) Up 36 days, 15 hours, 52 minutes, 55 seconds Ethernet100 is up, line protocol is up (connected) Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc) Internet address is 11.201.8.1/22 Broadcast address is 255.255.255.255 IP MTU 1400 bytes , BW 10000000 kbit Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a Up 36 days, 15 hours, 59 minutes, 14 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec 0 packets input, 0 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 0 packets output, 0 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Loopback0 is up, line protocol is up (connected) Hardware is Loopback Internet address is 11.201.0.1/32 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 15 hours, 56 minutes, 40 seconds Loopback10 is up, line protocol is up (connected) Hardware is Loopback Internet address is 198.18.0.35/24 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 15 hours, 59 minutes, 31 seconds Vlan4093 is down, line protocol is lowerlayerdown (notconnect) Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000) IP MTU 9164 bytes (default) Down 36 days, 15 hours, 52 minutes, 55 seconds Vlan4094 is down, line protocol is lowerlayerdown (notconnect) Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000) IP MTU 9164 bytes (default) Down 36 days, 15 hours, 56 minutes, 38 seconds Vxlan1 is up, line protocol is up (connected) Hardware is Vxlan Source interface is Loopback0 and is active with 11.201.0.1 Replication/Flood Mode is headend with Flood List Source: CLI Remote MAC learning is disabled VNI mapping to VLANs Static VLAN to VNI mapping is Dynamic VLAN to VNI mapping for 'evpn' is [4093, 102] [4094, 101] Note: All Dynamic VLANs used by VCS are internal VLANs. Use 'show vxlan vni' for details. Static VRF to VNI mapping is [default, 101] [prod, 102] MLAG Shared Router MAC is 0000.0000.0000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'} INFO root:tests_tools.py:370 Verify if show command |show interfaces| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_mtu_is_correct_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_mtu_is_correct_on_ exists in results file at index 12 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_mtu_is_correct_on_ with parameters {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces', 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'actual_output': 1500, 'test_result': False, 'dut': 'kg-topology-CloudEOSEdge1'} | ||||
| Failed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceMtuTests::test_if_intf_mtu_is_correct_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no inDiscards | 0.83 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 self = <tests.interface.test_interface.InterfaceMtuTests object at 0x7f54b7d23df0> dut = {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-...TEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, ...}} tests_definitions = {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'description': 'Verify the interfaces of interest protoc...rify username is set correctly', 'expected_output': True, 'name': 'test_if_usernames_are_configured_on_', ...}]}, ...]} def test_if_intf_mtu_is_correct_on_(self, dut, tests_definitions): """ Verify the interfaces of interest have no inDiscards Args: dut (dict): Encapsulates dut details including name, connection """ test_parameters = tests_tools.get_parameters(tests_definitions, TEST_SUITE) expected_output = test_parameters["expected_output"] dut_name = dut['name'] interfaces_list = dut["output"]["interface_list"] show_cmd = test_parameters["show_cmd"] tests_tools.verify_show_cmd(show_cmd, dut) show_cmd_txt = dut["output"][show_cmd]['text'] print(f"\nOn router |{dut_name}|:") for interface in interfaces_list: interface_name = interface['interface_name'].replace(" ", "") int_ptr = dut["output"][show_cmd]['json']['interfaces'] actual_output = int_ptr[interface_name]['mtu'] output_msg = (f"On interface |{interface_name}|: interface " f"MTU is |{actual_output}|, correct MTU is " f"|{expected_output}|") test_result = actual_output == expected_output comment = (f'TEST if interface |{interface_name}| MTU is correct ' f'on |{dut_name}|.\nGIVEN MTU of |{expected_output}|.\n' f'WHEN interface MTU is |{actual_output}|.\nTHEN test ' f'case result is |{test_result}|.\nOUTPUT of ' f'|{show_cmd}| is:\n\n{show_cmd_txt}') test_parameters['comment'] = comment print(f" - {output_msg}\n{comment}") test_parameters["fail_reason"] = "" if not test_result: test_parameters["fail_reason"] = output_msg tests_tools.write_results(test_parameters, dut_name, TEST_SUITE, actual_output, test_result, test_parameters["fail_reason"]) > assert actual_output == expected_output E assert 1500 == 10178 E +1500 E -10178 tests/interface/test_interface.py:761: AssertionError -------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178| TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|. GIVEN MTU of |10178|. WHEN interface MTU is |1500|. THEN test case result is |False|. OUTPUT of |show interfaces| is: Ethernet1 is up, line protocol is up (connected) Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530) Internet address is 11.201.15.101/25 Broadcast address is 255.255.255.255 Address determined by DHCP IP MTU 1500 bytes (default) Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 36 days, 15 hours, 58 minutes, 53 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 53.3 kbps (- with framing overhead), 56 packets/sec 5 minutes output rate 120 kbps (- with framing overhead), 66 packets/sec 118849266 packets input, 14091322662 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 139886724 packets output, 29642849346 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet2 is up, line protocol is up (connected) Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780) Internet address is 11.201.15.201/25 Broadcast address is 255.255.255.255 IP MTU 9000 bytes Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 36 days, 15 hours, 58 minutes, 53 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 88.4 kbps (- with framing overhead), 58 packets/sec 5 minutes output rate 49.3 kbps (- with framing overhead), 51 packets/sec 129532288 packets input, 21152547469 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 117381498 packets output, 13175205931 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet2.102 is up, line protocol is up (connected) Hardware is Subinterface, address is 0667.8522.a780 Internet address is 11.201.15.201/25 Broadcast address is 255.255.255.255 IP MTU 9000 bytes (default) Up 36 days, 15 hours, 52 minutes, 51 seconds Ethernet100 is up, line protocol is up (connected) Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297) Internet address is 11.201.8.1/22 Broadcast address is 255.255.255.255 IP MTU 1400 bytes , BW 10000000 kbit Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a Up 36 days, 15 hours, 58 minutes, 51 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec 0 packets input, 0 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 0 packets output, 0 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Loopback0 is up, line protocol is up (connected) Hardware is Loopback Internet address is 11.201.0.3/32 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 15 hours, 56 minutes, 11 seconds Loopback10 is up, line protocol is up (connected) Hardware is Loopback Internet address is 198.18.0.37/24 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 15 hours, 59 minutes, 15 seconds Vlan4093 is down, line protocol is lowerlayerdown (notconnect) Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000) IP MTU 9164 bytes (default) Down 36 days, 15 hours, 52 minutes, 52 seconds Vlan4094 is down, line protocol is lowerlayerdown (notconnect) Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000) IP MTU 9164 bytes (default) Down 36 days, 15 hours, 56 minutes, 6 seconds Vxlan1 is up, line protocol is up (connected) Hardware is Vxlan Source interface is Loopback0 and is active with 11.201.0.3 Replication/Flood Mode is headend with Flood List Source: CLI Remote MAC learning is disabled VNI mapping to VLANs Static VLAN to VNI mapping is Dynamic VLAN to VNI mapping for 'evpn' is [4093, 102] [4094, 101] Note: All Dynamic VLANs used by VCS are internal VLANs. Use 'show vxlan vni' for details. Static VRF to VNI mapping is [default, 101] [prod, 102] MLAG Shared Router MAC is 0000.0000.0000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'} INFO root:tests_tools.py:370 Verify if show command |show interfaces| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_mtu_is_correct_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_mtu_is_correct_on_ exists in results file at index 12 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_mtu_is_correct_on_ with parameters {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces', 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 53.3 kbps (- with framing overhead), 56 packets/sec\n 5 minutes output rate 120 kbps (- with framing overhead), 66 packets/sec\n 118849266 packets input, 14091322662 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 139886724 packets output, 29642849346 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.4 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.3 kbps (- with framing overhead), 51 packets/sec\n 129532288 packets input, 21152547469 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 117381498 packets output, 13175205931 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 51 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 51 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 11 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 15 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 52 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 6 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'actual_output': 1500, 'test_result': False, 'dut': 'kg-topology-CloudEOSEdge2'} | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEosRR1]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEosRR1]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEosRR1]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEosRR1]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEosRR2]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEosRR2]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEosRR2]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEosRR2]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEOSEdge1]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEOSEdge1]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEOSEdge1]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEOSEdge1]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEOSEdge2]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEOSEdge2]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEOSEdge2]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEOSEdge2]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Passed | kg-topology-CloudEosRR1 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEosRR1] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEosRR1] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show users detail| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEosRR1| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 131786 kgrozis command-api E 0:00:28 local | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEosRR1] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEosRR1| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 128919 Last hit: 0 seconds ago Bytes in: 19634197 Bytes out: 315671125 Requests: 121894 Commands: 243788 Duration: 12330.186 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 121894 19634197 315671125 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEosRR1] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEosRR1| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 128918 Last hit: 0 seconds ago Bytes in: 19634032 Bytes out: 315669903 Requests: 121893 Commands: 243786 Duration: 12330.158 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 121893 19634032 315669903 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEosRR1] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEosRR1| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 128917 Last hit: 0 seconds ago Bytes in: 19633867 Bytes out: 315668681 Requests: 121892 Commands: 243784 Duration: 12330.142 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 121892 19633867 315668681 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEosRR1] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEosRR1| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 128919 Last hit: 0 seconds ago Bytes in: 19634197 Bytes out: 315671125 Requests: 121894 Commands: 243788 Duration: 12330.186 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 121894 19634197 315671125 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEosRR1] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEosRR1| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 128920 Last hit: 0 seconds ago Bytes in: 19634362 Bytes out: 315672347 Requests: 121895 Commands: 243790 Duration: 12330.203 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 121895 19634362 315672347 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEosRR1] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| 1 second CPU load average is |1.09%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.09| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 17:18:17 up 36 days, 16:00, 0 users, load average: 1.09, 1.13, 1.16 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 37-04:20:38 Sfe 1720 2.4 1.8 ? Sl Aug 13 21:12:58 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 8458 1.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 21946 0.7 0.7 ? SNl 14:45:06 00:01:07 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 02:53:54 ConfigAgent 1296 0.2 0.9 ? S Aug 13 02:04:51 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 02:08:50 Sysdb 1735 0.1 1.7 ? S Aug 13 01:05:18 SuperServer 1759 0.1 1.0 ? S Aug 13 01:42:50 AgentMonitor 1992 0.1 1.6 ? S Aug 13 01:01:52 IpRib 1 0.0 0.0 ? Ss Aug 13 00:08:07 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:23 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:03:49 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:06:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1468 0.0 0.0 ? S Aug 13 00:12:33 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:02:50 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:06:24 StageMgr 1575 0.0 1.4 ? S Aug 13 00:15:19 Fru 1576 0.0 1.8 ? S Aug 13 00:06:22 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:23:28 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:16:08 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:17:44 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:17:36 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:38:44 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:16:23 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:20:06 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:23:02 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:49:51 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:06:27 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:10:09 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:18:53 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:16:13 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:36:25 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:30:27 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:07:34 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:16:05 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:16:21 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:25:17 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:16:17 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:18:36 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:07:33 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:07:32 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:15:36 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:06:26 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:06:26 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:22:37 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:06:28 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:06:27 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:16:24 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:07:35 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:07:42 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:16:26 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:07:37 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:36:20 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:06:29 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:46:41 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:01:50 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog 5538 0.0 0.0 ? S 16:57:00 00:00:00 [kworker/0:0] 5988 0.0 0.0 ? S 17:03:00 00:00:00 [kworker/0:1] 6771 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:3] 7863 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:2] 7883 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:4] 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:08:56 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:02:52 nginx: worker process 21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR1 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEosRR1] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| 1 minute CPU load average is |1.13%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.13| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 17:18:17 up 36 days, 16:00, 0 users, load average: 1.09, 1.13, 1.16 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 37-04:20:38 Sfe 1720 2.4 1.8 ? Sl Aug 13 21:12:58 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 21946 0.7 0.7 ? SNl 14:45:06 00:01:07 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 02:53:54 ConfigAgent 1296 0.2 0.9 ? S Aug 13 02:04:51 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 02:08:50 Sysdb 1735 0.1 1.7 ? S Aug 13 01:05:18 SuperServer 1759 0.1 1.0 ? S Aug 13 01:42:50 AgentMonitor 1992 0.1 1.6 ? S Aug 13 01:01:52 IpRib 1 0.0 0.0 ? Ss Aug 13 00:08:07 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:23 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:03:49 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:06:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1468 0.0 0.0 ? S Aug 13 00:12:33 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:02:50 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:06:24 StageMgr 1575 0.0 1.4 ? S Aug 13 00:15:19 Fru 1576 0.0 1.8 ? S Aug 13 00:06:22 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:23:28 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:16:08 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:17:44 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:17:36 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:38:44 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:16:23 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:20:06 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:23:02 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:49:51 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:06:27 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:10:09 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:18:53 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:16:13 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:36:25 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:30:27 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:07:34 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:16:05 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:16:21 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:25:17 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:16:17 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:18:36 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:07:33 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:07:32 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:15:36 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:06:26 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:06:26 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:22:37 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:06:28 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:06:27 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:16:24 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:07:35 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:07:42 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:16:26 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:07:37 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:36:20 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:06:29 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:46:41 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:01:50 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog 5538 0.0 0.0 ? S 16:57:00 00:00:00 [kworker/0:0] 5988 0.0 0.0 ? S 17:03:00 00:00:00 [kworker/0:1] 6771 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:3] 7863 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:2] 7883 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:4] 8453 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 8454 0.0 0.0 ? Rs 17:18:16 00:00:00 [ConfigAgent] 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:08:56 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:02:52 nginx: worker process 21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEosRR1] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show daemon| on kg-topology-CloudEosRR1 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEosRR1| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1720) Uptime: 36 days, 15:59:38 (Start time: Thu Aug 13 01:18:47 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEosRR1] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| 5 minute CPU load average is |1.16%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.16| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 17:18:18 up 36 days, 16:00, 0 users, load average: 1.09, 1.13, 1.16 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 37-04:20:38 Sfe 1720 2.4 1.8 ? Sl Aug 13 21:12:58 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 21946 0.7 0.7 ? SNl 14:45:06 00:01:07 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 02:53:54 ConfigAgent 1296 0.2 0.9 ? S Aug 13 02:04:51 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 02:08:50 Sysdb 1735 0.1 1.7 ? S Aug 13 01:05:18 SuperServer 1759 0.1 1.0 ? S Aug 13 01:42:50 AgentMonitor 1992 0.1 1.6 ? S Aug 13 01:01:52 IpRib 1 0.0 0.0 ? Ss Aug 13 00:08:07 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:23 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:03:49 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:06:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1468 0.0 0.0 ? S Aug 13 00:12:33 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:02:50 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:06:24 StageMgr 1575 0.0 1.4 ? S Aug 13 00:15:19 Fru 1576 0.0 1.8 ? S Aug 13 00:06:22 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:23:28 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:16:08 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:17:44 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:17:36 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:38:44 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:16:23 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:20:06 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:23:02 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:49:51 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:06:27 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:10:09 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:18:53 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:16:13 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:36:25 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:30:27 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:07:34 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:16:05 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:16:21 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:25:17 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:16:17 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:18:36 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:07:33 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:07:32 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:15:36 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:06:26 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:06:26 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:22:37 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:06:28 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:06:27 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:16:24 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:07:35 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:07:42 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:16:26 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:07:37 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:36:20 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:06:29 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:46:41 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:01:50 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog 5538 0.0 0.0 ? S 16:57:00 00:00:00 [kworker/0:0] 5988 0.0 0.0 ? S 17:03:00 00:00:00 [kworker/0:1] 6771 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:3] 7863 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:2] 7883 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:4] 8463 0.0 0.0 ? Rs 17:18:17 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:08:56 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:02:52 nginx: worker process 21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEosRR1] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEosRR1| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:370 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show daemon| on kg-topology-CloudEosRR1 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1720) Uptime: 36 days, 15:59:38 (Start time: Thu Aug 13 01:18:47 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEosRR1] | Verify hostname is set on device is correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show hostname| on kg-topology-CloudEosRR1 INFO root:test_host.py:72 TEST is hostname kg-topology-CloudEosRR1 correct INFO root:test_host.py:73 GIVEN hostname kg-topology-CloudEosRR1 INFO root:test_host.py:74 WHEN hostname is kg-topology-CloudEosRR1 INFO root:test_host.py:81 THEN test case result is |False| INFO root:test_host.py:82 OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEosRR1 FQDN: kg-topology-CloudEosRR1 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEosRR1] | Verify a list of extension are not erroring on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| awslogs.swix extension error is |False| On router |kg-topology-CloudEosRR1| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show extensions| on kg-topology-CloudEosRR1 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEosRR1| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEosRR1| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest link statuses are up | 0.19 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:370 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR1 INFO root:test_interface.py:128 TEST if interface |Ethernet1| link status is up on |kg-topology-CloudEosRR1| INFO root:test_interface.py:130 GIVEN interface status is |connected| INFO root:test_interface.py:134 WHEN interface status is |connected| INFO root:test_interface.py:137 THEN test case result is |True| INFO root:test_interface.py:138 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'name': 'test_if_intf_link_status_is_connected_on_', 'duts': []}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'actual_output': 'connected', 'test_result': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest does not have input errors | 0.20 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:test_interface.py:256 TEST if interface |Ethernet1| counters has input errors on |kg-topology-CloudEosRR1| INFO root:test_interface.py:258 GIVEN interface input errors of |0| INFO root:test_interface.py:260 WHEN interface input errors is |{actual_output}| INFO root:test_interface.py:267 THEN test case result is |{test_result}| INFO root:test_interface.py:268 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:525 Create test case test_if_intf_counters_has_input_errors_on_ in results file INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEosRR1] | Verify filesystem is correct and expected files are present | 1.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEosRR1|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEosRR1|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEosRR1| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-CloudEosRR1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR1', 'interface_name': 'Ethernet1', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281716.8369684, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.2'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281558.0152419, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:46:bb:59:d5:ae', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.957651, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:59:d5:ae', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281556.0259387, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:46:bb:e9:20:d4', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 28203.3055620246, 'inPktsRate': 26.991726408462927, 'outBitsRate': 50578.779890690355, 'updateInterval': 300.0, 'outPktsRate': 29.66043973313733}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 79207233, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.959037, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 8866267671, 'outDiscards': 0, 'outOctets': 15115021169, 'inUcastPkts': 70991357, 'inTotalPkts': 70991357, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.12.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:e9:20:d4', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281533.0804734, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.36'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR1', 'hostname': 'kg-topology-CloudEosRR1'}, 'text': 'Hostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3168035.18, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '9B112703F293F47ADC3EE25318457B64', 'systemMacAddress': '02:46:bb:59:d5:ae', 'bootupTimestamp': 1597281461.0, 'memFree': 2960292, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 16 hours and 0 minutes\nTotal memory: 7761392 kB\nFree memory: 2960292 kB\n\n'}, 'show processes': {'json': {'processes': {'2051': {'totalActiveTime': 3212436, 'memPct': 3.4, 'cpuPct': 101.0, 'startTime': 1597281541.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1720': {'totalActiveTime': 76378, 'memPct': 1.8, 'cpuPct': 2.4, 'startTime': 1597281526.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '21946': {'totalActiveTime': 67, 'memPct': 0.7, 'cpuPct': 0.7, 'startTime': 1600440306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1571': {'totalActiveTime': 10434, 'memPct': 7.1, 'cpuPct': 0.3, 'startTime': 1597281504.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1296': {'totalActiveTime': 7491, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1529': {'totalActiveTime': 7730, 'memPct': 2.6, 'cpuPct': 0.2, 'startTime': 1597281501.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 3918, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281528.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1759': {'totalActiveTime': 6170, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281530.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1992': {'totalActiveTime': 3712, 'memPct': 1.6, 'cpuPct': 0.1, 'startTime': 1597281538.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 487, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 16, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '387': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '414': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '738': {'totalActiveTime': 229, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '740': {'totalActiveTime': 365, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 72, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '796': {'totalActiveTime': 8, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '811': {'totalActiveTime': 28, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '820': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '867': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '[kworker/u8:3]', 'state': 'S', 'ttyName': '?'}, '976': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1007': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1008': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1026': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1029': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1054': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281475.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1169': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1170': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1204': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1267': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1269': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1295': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1468': {'totalActiveTime': 753, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1476': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1491': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1528': {'totalActiveTime': 170, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 384, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281504.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1575': {'totalActiveTime': 919, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1576': {'totalActiveTime': 382, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1697': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1698': {'totalActiveTime': 1408, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1704': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1706': {'totalActiveTime': 968, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1709': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1064, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1728': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 1056, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 2324, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 983, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1742': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1744': {'totalActiveTime': 1206, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1748': {'totalActiveTime': 1382, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1749': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 2991, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 387, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1758': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1763': {'totalActiveTime': 609, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1764': {'totalActiveTime': 1133, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1766': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1768': {'totalActiveTime': 973, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1777': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1778': {'totalActiveTime': 2185, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1790': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1794': {'totalActiveTime': 1827, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1816': {'totalActiveTime': 454, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1819': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 965, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1830': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1837': {'totalActiveTime': 981, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1850': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 1517, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1872': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1875': {'totalActiveTime': 977, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1884': {'totalActiveTime': 1116, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1887': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1888': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1889': {'totalActiveTime': 453, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 452, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 936, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1909': {'totalActiveTime': 386, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 386, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1929': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1935': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1939': {'totalActiveTime': 1357, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1947': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1948': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1951': {'totalActiveTime': 388, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1961': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1964': {'totalActiveTime': 387, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1967': {'totalActiveTime': 984, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1984': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1985': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1986': {'totalActiveTime': 455, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1991': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2009': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '2012': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2015': {'totalActiveTime': 462, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '2025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2027': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2028': {'totalActiveTime': 986, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '2031': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2032': {'totalActiveTime': 457, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2033': {'totalActiveTime': 2180, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2040': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2045': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2303': {'totalActiveTime': 39, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2369': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2630': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2631': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2632': {'totalActiveTime': 389, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2635': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2637': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2645': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2648': {'totalActiveTime': 73, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2649': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2691': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2718': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2720': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2721': {'totalActiveTime': 2801, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2723': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2750': {'totalActiveTime': 110, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3323': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3325': {'totalActiveTime': 169, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '5538': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448220.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '5988': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448580.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '6771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448940.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '7863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449301.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '7883': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449301.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '8426': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449495.0, 'cmd': '[uptime] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '8430': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449495.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '18653': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18654': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18655': {'totalActiveTime': 536, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18701': {'totalActiveTime': 172, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '21923': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600440305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3168036.0, 'loadAvg': [1.09, 1.13, 1.16], 'users': 0, 'currentTime': 1600449496.891017}}, 'text': " 17:18:17 up 36 days, 16:00, 0 users, load average: 1.09, 1.13, 1.16\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2051 101 3.4 ? Sl Aug 13 37-04:20:38 Sfe\n 1720 2.4 1.8 ? Sl Aug 13 21:12:58 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042\n21946 0.7 0.7 ? SNl 14:45:06 00:01:07 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1571 0.3 7.1 ? Dl Aug 13 02:53:54 ConfigAgent\n 1296 0.2 0.9 ? S Aug 13 02:04:51 ProcMgr-worker\n 1529 0.2 2.6 ? S Aug 13 02:08:50 Sysdb\n 1735 0.1 1.7 ? S Aug 13 01:05:18 SuperServer\n 1759 0.1 1.0 ? S Aug 13 01:42:50 AgentMonitor\n 1992 0.1 1.6 ? S Aug 13 01:01:52 IpRib\n 1 0.0 0.0 ? Ss Aug 13 00:08:07 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:23 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 738 0.0 0.0 ? Ss Aug 13 00:03:49 /usr/lib/systemd/systemd-logind\n 740 0.0 0.1 ? Ss Aug 13 00:06:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor\n 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60\n 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n\n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3]\n 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1468 0.0 0.0 ? S Aug 13 00:12:33 /usr/bin/EosOomAdjust\n 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu]\n 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1528 0.0 0.0 ? S Aug 13 00:02:50 /usr/bin/SlabMonitor\n 1570 0.0 1.2 ? S Aug 13 00:06:24 StageMgr\n 1575 0.0 1.4 ? S Aug 13 00:15:19 Fru\n 1576 0.0 1.8 ? S Aug 13 00:06:22 Launcher\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1698 0.0 1.2 ? S Aug 13 00:23:28 Lldp\n 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1706 0.0 1.2 ? S Aug 13 00:16:08 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:17:44 PortSec\n 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 1.4 ? S Aug 13 00:17:36 Bfd\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.3 ? S Aug 13 00:38:44 Lag\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.5 ? S Aug 13 00:16:23 Ira\n 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1744 0.0 1.2 ? S Aug 13 00:20:06 LedPolicy\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1748 0.0 1.3 ? S Aug 13 00:23:02 EventMgr\n 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.2 ? S Aug 13 00:49:51 StpTxRx\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.1 ? S Aug 13 00:06:27 StandbyCpld\n 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1763 0.0 1.2 ? S Aug 13 00:10:09 Tunnel\n 1764 0.0 1.5 ? Sl Aug 13 00:18:53 Aaa\n 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1768 0.0 1.2 ? S Aug 13 00:16:13 StpTopology\n 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1778 0.0 1.4 ? S Aug 13 00:36:25 Acl\n 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1794 0.0 1.1 ? S Aug 13 00:30:27 Stp\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1816 0.0 1.1 ? S Aug 13 00:07:34 KernelNetworkInfo\n 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.2 ? S Aug 13 00:16:05 McastCommon6\n 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1837 0.0 1.2 ? S Aug 13 00:16:21 LacpTxAgent\n 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 1.5 ? S Aug 13 00:25:17 Arp\n 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1875 0.0 1.4 ? S Aug 13 00:16:17 KernelFib\n 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1884 0.0 1.2 ? S Aug 13 00:18:36 Qos\n 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1889 0.0 1.1 ? S Aug 13 00:07:33 Thermostat\n 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1899 0.0 1.2 ? S Aug 13 00:07:32 L2Rib\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.2 ? S Aug 13 00:15:36 TopoAgent\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1909 0.0 1.1 ? S Aug 13 00:06:26 PowerFuse\n 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.1 ? S Aug 13 00:06:26 PowerManager\n 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1939 0.0 1.4 ? S Aug 13 00:22:37 Ebra\n 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1951 0.0 1.1 ? S Aug 13 00:06:28 ReloadCauseAgent\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1964 0.0 1.1 ? S Aug 13 00:06:27 SharedSecretProfile\n 1967 0.0 1.5 ? S Aug 13 00:16:24 IgmpSnooping\n 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1986 0.0 1.3 ? S Aug 13 00:07:35 StaticRoute\n 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2015 0.0 1.9 ? S Aug 13 00:07:42 BgpCliHelper\n 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2028 0.0 1.3 ? S Aug 13 00:16:26 ConnectedRoute\n 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2032 0.0 1.3 ? S Aug 13 00:07:37 RouteInput\n 2033 0.0 2.3 ? Sl Aug 13 00:36:20 Bgp\n 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n\n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2632 0.0 1.1 ? S Aug 13 00:06:29 LicenseManager\n 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console\n 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2721 0.0 1.2 ? S Aug 13 00:46:41 Ipsec\n 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2750 0.0 0.1 ? Ssl Aug 13 00:01:50 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog\n 5538 0.0 0.0 ? S 16:57:00 00:00:00 [kworker/0:0]\n 5988 0.0 0.0 ? S 17:03:00 00:00:00 [kworker/0:1]\n 6771 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:3]\n 7863 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:2]\n 7883 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:4]\n 8454 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18655 0.0 1.3 ? Sl Aug 14 00:08:56 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18701 0.0 0.1 ? S Aug 14 00:02:52 nginx: worker process \n21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 131675, 'authorizationAllowed': 1167, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 1, 'authenticationUnavailable': 115, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 131679\n Failed: 1\n Service unavailable: 115\n\nAuthorization\n Allowed: 1167\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'131786': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600449473, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n131786 kgrozis command-api E 0:00:28 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 25, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 25 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.146, 'jitter': 1.01, 'lastReceived': 1600448884.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.464, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 620 1024 377 0.146 0.464 1.01\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281527.46723, 'pid': 1720, 'enabled': True, 'uptime': 3167978.01, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1720)\nUptime: 36 days, 15:59:38 (Start time: Thu Aug 13 01:18:47 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 121891, 'bytesOut': 315667673, 'lastHitTime': 1600449508.8205507, 'bytesIn': 19633702}}, 'bytesOut': 315667673, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 128916, 'vrf': 'default', 'lastHitTime': 1600449508.820491, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 12330.054736642283, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 121891, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.12.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.2:443', 'Loopback10 : https://198.18.0.36:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 19633702, 'commandCount': 243782, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 128919\nLast hit: 0 seconds ago\nBytes in: 19634197\nBytes out: 315671125\nRequests: 121894\nCommands: 243788\nDuration: 12330.186 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 121894 19634197 315671125 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.12.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.2:443 \nLoopback10 : https://198.18.0.36:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:32:41 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:54 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:34:26 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:35:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:57 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:32:41 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:54 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:34:26 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:35:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:57 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEosRR1: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEosRR1: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEosRR1| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-CloudEosRR1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR1', 'interface_name': 'Ethernet1', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281716.8369684, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.2'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281558.0152419, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:46:bb:59:d5:ae', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.957651, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:59:d5:ae', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281556.0259387, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:46:bb:e9:20:d4', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 28203.3055620246, 'inPktsRate': 26.991726408462927, 'outBitsRate': 50578.779890690355, 'updateInterval': 300.0, 'outPktsRate': 29.66043973313733}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 79207233, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.959037, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 8866267671, 'outDiscards': 0, 'outOctets': 15115021169, 'inUcastPkts': 70991357, 'inTotalPkts': 70991357, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.12.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:e9:20:d4', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281533.0804734, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.36'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR1', 'hostname': 'kg-topology-CloudEosRR1'}, 'text': 'Hostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3168035.18, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '9B112703F293F47ADC3EE25318457B64', 'systemMacAddress': '02:46:bb:59:d5:ae', 'bootupTimestamp': 1597281461.0, 'memFree': 2960292, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 16 hours and 0 minutes\nTotal memory: 7761392 kB\nFree memory: 2960292 kB\n\n'}, 'show processes': {'json': {'processes': {'2051': {'totalActiveTime': 3212436, 'memPct': 3.4, 'cpuPct': 101.0, 'startTime': 1597281541.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1720': {'totalActiveTime': 76378, 'memPct': 1.8, 'cpuPct': 2.4, 'startTime': 1597281526.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '21946': {'totalActiveTime': 67, 'memPct': 0.7, 'cpuPct': 0.7, 'startTime': 1600440306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1571': {'totalActiveTime': 10434, 'memPct': 7.1, 'cpuPct': 0.3, 'startTime': 1597281504.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1296': {'totalActiveTime': 7491, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1529': {'totalActiveTime': 7730, 'memPct': 2.6, 'cpuPct': 0.2, 'startTime': 1597281501.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 3918, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281528.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1759': {'totalActiveTime': 6170, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281530.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1992': {'totalActiveTime': 3712, 'memPct': 1.6, 'cpuPct': 0.1, 'startTime': 1597281538.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 487, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 16, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '387': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '414': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '738': {'totalActiveTime': 229, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '740': {'totalActiveTime': 365, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 72, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '796': {'totalActiveTime': 8, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '811': {'totalActiveTime': 28, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '820': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '867': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '[kworker/u8:3]', 'state': 'S', 'ttyName': '?'}, '976': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1007': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1008': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1026': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1029': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1054': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281475.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1169': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1170': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1204': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1267': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1269': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1295': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1468': {'totalActiveTime': 753, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1476': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1491': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1528': {'totalActiveTime': 170, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 384, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281504.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1575': {'totalActiveTime': 919, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1576': {'totalActiveTime': 382, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1697': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1698': {'totalActiveTime': 1408, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1704': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1706': {'totalActiveTime': 968, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1709': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1064, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1728': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 1056, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 2324, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 983, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1742': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1744': {'totalActiveTime': 1206, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1748': {'totalActiveTime': 1382, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1749': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 2991, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 387, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1758': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1763': {'totalActiveTime': 609, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1764': {'totalActiveTime': 1133, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1766': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1768': {'totalActiveTime': 973, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1777': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1778': {'totalActiveTime': 2185, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1790': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1794': {'totalActiveTime': 1827, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1816': {'totalActiveTime': 454, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1819': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 965, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1830': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1837': {'totalActiveTime': 981, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1850': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 1517, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1872': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1875': {'totalActiveTime': 977, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1884': {'totalActiveTime': 1116, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1887': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1888': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1889': {'totalActiveTime': 453, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 452, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 936, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1909': {'totalActiveTime': 386, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 386, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1929': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1935': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1939': {'totalActiveTime': 1357, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1947': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1948': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1951': {'totalActiveTime': 388, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1961': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1964': {'totalActiveTime': 387, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1967': {'totalActiveTime': 984, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1984': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1985': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1986': {'totalActiveTime': 455, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1991': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2009': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '2012': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2015': {'totalActiveTime': 462, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '2025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2027': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2028': {'totalActiveTime': 986, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '2031': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2032': {'totalActiveTime': 457, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2033': {'totalActiveTime': 2180, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2040': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2045': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2303': {'totalActiveTime': 39, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2369': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2630': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2631': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2632': {'totalActiveTime': 389, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2635': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2637': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2645': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2648': {'totalActiveTime': 73, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2649': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2691': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2718': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2720': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2721': {'totalActiveTime': 2801, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2723': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2750': {'totalActiveTime': 110, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3323': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3325': {'totalActiveTime': 169, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '5538': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448220.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '5988': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448580.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '6771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448940.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '7863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449301.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '7883': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449301.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '8426': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449495.0, 'cmd': '[uptime] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '8430': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449495.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '18653': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18654': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18655': {'totalActiveTime': 536, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18701': {'totalActiveTime': 172, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '21923': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600440305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3168036.0, 'loadAvg': [1.09, 1.13, 1.16], 'users': 0, 'currentTime': 1600449496.891017}}, 'text': " 17:18:17 up 36 days, 16:00, 0 users, load average: 1.09, 1.13, 1.16\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2051 101 3.4 ? Sl Aug 13 37-04:20:38 Sfe\n 1720 2.4 1.8 ? Sl Aug 13 21:12:58 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042\n21946 0.7 0.7 ? SNl 14:45:06 00:01:07 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1571 0.3 7.1 ? Dl Aug 13 02:53:54 ConfigAgent\n 1296 0.2 0.9 ? S Aug 13 02:04:51 ProcMgr-worker\n 1529 0.2 2.6 ? S Aug 13 02:08:50 Sysdb\n 1735 0.1 1.7 ? S Aug 13 01:05:18 SuperServer\n 1759 0.1 1.0 ? S Aug 13 01:42:50 AgentMonitor\n 1992 0.1 1.6 ? S Aug 13 01:01:52 IpRib\n 1 0.0 0.0 ? Ss Aug 13 00:08:07 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:23 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 738 0.0 0.0 ? Ss Aug 13 00:03:49 /usr/lib/systemd/systemd-logind\n 740 0.0 0.1 ? Ss Aug 13 00:06:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor\n 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60\n 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n\n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3]\n 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1468 0.0 0.0 ? S Aug 13 00:12:33 /usr/bin/EosOomAdjust\n 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu]\n 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1528 0.0 0.0 ? S Aug 13 00:02:50 /usr/bin/SlabMonitor\n 1570 0.0 1.2 ? S Aug 13 00:06:24 StageMgr\n 1575 0.0 1.4 ? S Aug 13 00:15:19 Fru\n 1576 0.0 1.8 ? S Aug 13 00:06:22 Launcher\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1698 0.0 1.2 ? S Aug 13 00:23:28 Lldp\n 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1706 0.0 1.2 ? S Aug 13 00:16:08 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:17:44 PortSec\n 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 1.4 ? S Aug 13 00:17:36 Bfd\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.3 ? S Aug 13 00:38:44 Lag\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.5 ? S Aug 13 00:16:23 Ira\n 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1744 0.0 1.2 ? S Aug 13 00:20:06 LedPolicy\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1748 0.0 1.3 ? S Aug 13 00:23:02 EventMgr\n 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.2 ? S Aug 13 00:49:51 StpTxRx\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.1 ? S Aug 13 00:06:27 StandbyCpld\n 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1763 0.0 1.2 ? S Aug 13 00:10:09 Tunnel\n 1764 0.0 1.5 ? Sl Aug 13 00:18:53 Aaa\n 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1768 0.0 1.2 ? S Aug 13 00:16:13 StpTopology\n 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1778 0.0 1.4 ? S Aug 13 00:36:25 Acl\n 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1794 0.0 1.1 ? S Aug 13 00:30:27 Stp\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1816 0.0 1.1 ? S Aug 13 00:07:34 KernelNetworkInfo\n 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.2 ? S Aug 13 00:16:05 McastCommon6\n 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1837 0.0 1.2 ? S Aug 13 00:16:21 LacpTxAgent\n 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 1.5 ? S Aug 13 00:25:17 Arp\n 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1875 0.0 1.4 ? S Aug 13 00:16:17 KernelFib\n 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1884 0.0 1.2 ? S Aug 13 00:18:36 Qos\n 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1889 0.0 1.1 ? S Aug 13 00:07:33 Thermostat\n 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1899 0.0 1.2 ? S Aug 13 00:07:32 L2Rib\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.2 ? S Aug 13 00:15:36 TopoAgent\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1909 0.0 1.1 ? S Aug 13 00:06:26 PowerFuse\n 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.1 ? S Aug 13 00:06:26 PowerManager\n 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1939 0.0 1.4 ? S Aug 13 00:22:37 Ebra\n 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1951 0.0 1.1 ? S Aug 13 00:06:28 ReloadCauseAgent\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1964 0.0 1.1 ? S Aug 13 00:06:27 SharedSecretProfile\n 1967 0.0 1.5 ? S Aug 13 00:16:24 IgmpSnooping\n 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1986 0.0 1.3 ? S Aug 13 00:07:35 StaticRoute\n 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2015 0.0 1.9 ? S Aug 13 00:07:42 BgpCliHelper\n 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2028 0.0 1.3 ? S Aug 13 00:16:26 ConnectedRoute\n 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2032 0.0 1.3 ? S Aug 13 00:07:37 RouteInput\n 2033 0.0 2.3 ? Sl Aug 13 00:36:20 Bgp\n 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n\n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2632 0.0 1.1 ? S Aug 13 00:06:29 LicenseManager\n 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console\n 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2721 0.0 1.2 ? S Aug 13 00:46:41 Ipsec\n 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2750 0.0 0.1 ? Ssl Aug 13 00:01:50 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog\n 5538 0.0 0.0 ? S 16:57:00 00:00:00 [kworker/0:0]\n 5988 0.0 0.0 ? S 17:03:00 00:00:00 [kworker/0:1]\n 6771 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:3]\n 7863 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:2]\n 7883 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:4]\n 8454 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18655 0.0 1.3 ? Sl Aug 14 00:08:56 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18701 0.0 0.1 ? S Aug 14 00:02:52 nginx: worker process \n21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 131675, 'authorizationAllowed': 1167, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 1, 'authenticationUnavailable': 115, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 131679\n Failed: 1\n Service unavailable: 115\n\nAuthorization\n Allowed: 1167\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'131786': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600449473, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n131786 kgrozis command-api E 0:00:28 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 25, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 25 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.146, 'jitter': 1.01, 'lastReceived': 1600448884.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.464, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 620 1024 377 0.146 0.464 1.01\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281527.46723, 'pid': 1720, 'enabled': True, 'uptime': 3167978.01, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1720)\nUptime: 36 days, 15:59:38 (Start time: Thu Aug 13 01:18:47 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 121891, 'bytesOut': 315667673, 'lastHitTime': 1600449508.8205507, 'bytesIn': 19633702}}, 'bytesOut': 315667673, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 128916, 'vrf': 'default', 'lastHitTime': 1600449508.820491, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 12330.054736642283, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 121891, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.12.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.2:443', 'Loopback10 : https://198.18.0.36:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 19633702, 'commandCount': 243782, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 128919\nLast hit: 0 seconds ago\nBytes in: 19634197\nBytes out: 315671125\nRequests: 121894\nCommands: 243788\nDuration: 12330.186 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 121894 19634197 315671125 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.12.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.2:443 \nLoopback10 : https://198.18.0.36:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:32:41 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:54 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:34:26 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:35:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:57 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:32:41 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:54 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:34:26 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:35:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:57 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEosRR1: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEosRR1: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEosRR1| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-CloudEosRR1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR1', 'interface_name': 'Ethernet1', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281716.8369684, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.2'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281558.0152419, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:46:bb:59:d5:ae', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.957651, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:59:d5:ae', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281556.0259387, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:46:bb:e9:20:d4', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 28203.3055620246, 'inPktsRate': 26.991726408462927, 'outBitsRate': 50578.779890690355, 'updateInterval': 300.0, 'outPktsRate': 29.66043973313733}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 79207233, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.959037, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 8866267671, 'outDiscards': 0, 'outOctets': 15115021169, 'inUcastPkts': 70991357, 'inTotalPkts': 70991357, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.12.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:e9:20:d4', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281533.0804734, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.36'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR1', 'hostname': 'kg-topology-CloudEosRR1'}, 'text': 'Hostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3168035.18, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '9B112703F293F47ADC3EE25318457B64', 'systemMacAddress': '02:46:bb:59:d5:ae', 'bootupTimestamp': 1597281461.0, 'memFree': 2960292, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 16 hours and 0 minutes\nTotal memory: 7761392 kB\nFree memory: 2960292 kB\n\n'}, 'show processes': {'json': {'processes': {'2051': {'totalActiveTime': 3212436, 'memPct': 3.4, 'cpuPct': 101.0, 'startTime': 1597281541.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1720': {'totalActiveTime': 76378, 'memPct': 1.8, 'cpuPct': 2.4, 'startTime': 1597281526.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '21946': {'totalActiveTime': 67, 'memPct': 0.7, 'cpuPct': 0.7, 'startTime': 1600440306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1571': {'totalActiveTime': 10434, 'memPct': 7.1, 'cpuPct': 0.3, 'startTime': 1597281504.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1296': {'totalActiveTime': 7491, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1529': {'totalActiveTime': 7730, 'memPct': 2.6, 'cpuPct': 0.2, 'startTime': 1597281501.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 3918, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281528.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1759': {'totalActiveTime': 6170, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281530.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1992': {'totalActiveTime': 3712, 'memPct': 1.6, 'cpuPct': 0.1, 'startTime': 1597281538.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 487, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 16, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '387': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '414': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '738': {'totalActiveTime': 229, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '740': {'totalActiveTime': 365, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 72, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '796': {'totalActiveTime': 8, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '811': {'totalActiveTime': 28, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '820': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '867': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '[kworker/u8:3]', 'state': 'S', 'ttyName': '?'}, '976': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1007': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1008': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1026': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1029': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1054': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281475.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1169': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1170': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1204': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1267': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1269': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1295': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1468': {'totalActiveTime': 753, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1476': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1491': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1528': {'totalActiveTime': 170, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 384, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281504.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1575': {'totalActiveTime': 919, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1576': {'totalActiveTime': 382, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1697': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1698': {'totalActiveTime': 1408, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1704': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1706': {'totalActiveTime': 968, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1709': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1064, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1728': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 1056, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 2324, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 983, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1742': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1744': {'totalActiveTime': 1206, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1748': {'totalActiveTime': 1382, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1749': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 2991, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 387, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1758': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1763': {'totalActiveTime': 609, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1764': {'totalActiveTime': 1133, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1766': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1768': {'totalActiveTime': 973, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1777': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1778': {'totalActiveTime': 2185, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1790': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1794': {'totalActiveTime': 1827, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1816': {'totalActiveTime': 454, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1819': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 965, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1830': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1837': {'totalActiveTime': 981, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1850': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 1517, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1872': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1875': {'totalActiveTime': 977, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1884': {'totalActiveTime': 1116, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1887': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1888': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1889': {'totalActiveTime': 453, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 452, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 936, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1909': {'totalActiveTime': 386, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 386, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1929': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1935': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1939': {'totalActiveTime': 1357, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1947': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1948': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1951': {'totalActiveTime': 388, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1961': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1964': {'totalActiveTime': 387, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1967': {'totalActiveTime': 984, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1984': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1985': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1986': {'totalActiveTime': 455, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1991': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2009': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '2012': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2015': {'totalActiveTime': 462, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '2025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2027': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2028': {'totalActiveTime': 986, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '2031': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2032': {'totalActiveTime': 457, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2033': {'totalActiveTime': 2180, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2040': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2045': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2303': {'totalActiveTime': 39, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2369': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2630': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2631': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2632': {'totalActiveTime': 389, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2635': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2637': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2645': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2648': {'totalActiveTime': 73, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2649': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2691': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2718': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2720': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2721': {'totalActiveTime': 2801, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2723': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2750': {'totalActiveTime': 110, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3323': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3325': {'totalActiveTime': 169, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '5538': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448220.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '5988': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448580.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '6771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448940.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '7863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449301.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '7883': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449301.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '8426': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449495.0, 'cmd': '[uptime] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '8430': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449495.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '18653': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18654': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18655': {'totalActiveTime': 536, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18701': {'totalActiveTime': 172, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '21923': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600440305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3168036.0, 'loadAvg': [1.09, 1.13, 1.16], 'users': 0, 'currentTime': 1600449496.891017}}, 'text': " 17:18:17 up 36 days, 16:00, 0 users, load average: 1.09, 1.13, 1.16\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2051 101 3.4 ? Sl Aug 13 37-04:20:38 Sfe\n 1720 2.4 1.8 ? Sl Aug 13 21:12:58 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042\n21946 0.7 0.7 ? SNl 14:45:06 00:01:07 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1571 0.3 7.1 ? Dl Aug 13 02:53:54 ConfigAgent\n 1296 0.2 0.9 ? S Aug 13 02:04:51 ProcMgr-worker\n 1529 0.2 2.6 ? S Aug 13 02:08:50 Sysdb\n 1735 0.1 1.7 ? S Aug 13 01:05:18 SuperServer\n 1759 0.1 1.0 ? S Aug 13 01:42:50 AgentMonitor\n 1992 0.1 1.6 ? S Aug 13 01:01:52 IpRib\n 1 0.0 0.0 ? Ss Aug 13 00:08:07 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:23 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 738 0.0 0.0 ? Ss Aug 13 00:03:49 /usr/lib/systemd/systemd-logind\n 740 0.0 0.1 ? Ss Aug 13 00:06:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor\n 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60\n 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n\n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3]\n 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1468 0.0 0.0 ? S Aug 13 00:12:33 /usr/bin/EosOomAdjust\n 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu]\n 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1528 0.0 0.0 ? S Aug 13 00:02:50 /usr/bin/SlabMonitor\n 1570 0.0 1.2 ? S Aug 13 00:06:24 StageMgr\n 1575 0.0 1.4 ? S Aug 13 00:15:19 Fru\n 1576 0.0 1.8 ? S Aug 13 00:06:22 Launcher\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1698 0.0 1.2 ? S Aug 13 00:23:28 Lldp\n 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1706 0.0 1.2 ? S Aug 13 00:16:08 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:17:44 PortSec\n 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 1.4 ? S Aug 13 00:17:36 Bfd\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.3 ? S Aug 13 00:38:44 Lag\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.5 ? S Aug 13 00:16:23 Ira\n 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1744 0.0 1.2 ? S Aug 13 00:20:06 LedPolicy\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1748 0.0 1.3 ? S Aug 13 00:23:02 EventMgr\n 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.2 ? S Aug 13 00:49:51 StpTxRx\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.1 ? S Aug 13 00:06:27 StandbyCpld\n 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1763 0.0 1.2 ? S Aug 13 00:10:09 Tunnel\n 1764 0.0 1.5 ? Sl Aug 13 00:18:53 Aaa\n 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1768 0.0 1.2 ? S Aug 13 00:16:13 StpTopology\n 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1778 0.0 1.4 ? S Aug 13 00:36:25 Acl\n 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1794 0.0 1.1 ? S Aug 13 00:30:27 Stp\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1816 0.0 1.1 ? S Aug 13 00:07:34 KernelNetworkInfo\n 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.2 ? S Aug 13 00:16:05 McastCommon6\n 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1837 0.0 1.2 ? S Aug 13 00:16:21 LacpTxAgent\n 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 1.5 ? S Aug 13 00:25:17 Arp\n 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1875 0.0 1.4 ? S Aug 13 00:16:17 KernelFib\n 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1884 0.0 1.2 ? S Aug 13 00:18:36 Qos\n 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1889 0.0 1.1 ? S Aug 13 00:07:33 Thermostat\n 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1899 0.0 1.2 ? S Aug 13 00:07:32 L2Rib\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.2 ? S Aug 13 00:15:36 TopoAgent\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1909 0.0 1.1 ? S Aug 13 00:06:26 PowerFuse\n 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.1 ? S Aug 13 00:06:26 PowerManager\n 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1939 0.0 1.4 ? S Aug 13 00:22:37 Ebra\n 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1951 0.0 1.1 ? S Aug 13 00:06:28 ReloadCauseAgent\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1964 0.0 1.1 ? S Aug 13 00:06:27 SharedSecretProfile\n 1967 0.0 1.5 ? S Aug 13 00:16:24 IgmpSnooping\n 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1986 0.0 1.3 ? S Aug 13 00:07:35 StaticRoute\n 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2015 0.0 1.9 ? S Aug 13 00:07:42 BgpCliHelper\n 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2028 0.0 1.3 ? S Aug 13 00:16:26 ConnectedRoute\n 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2032 0.0 1.3 ? S Aug 13 00:07:37 RouteInput\n 2033 0.0 2.3 ? Sl Aug 13 00:36:20 Bgp\n 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n\n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2632 0.0 1.1 ? S Aug 13 00:06:29 LicenseManager\n 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console\n 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2721 0.0 1.2 ? S Aug 13 00:46:41 Ipsec\n 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2750 0.0 0.1 ? Ssl Aug 13 00:01:50 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog\n 5538 0.0 0.0 ? S 16:57:00 00:00:00 [kworker/0:0]\n 5988 0.0 0.0 ? S 17:03:00 00:00:00 [kworker/0:1]\n 6771 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:3]\n 7863 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:2]\n 7883 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:4]\n 8454 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18655 0.0 1.3 ? Sl Aug 14 00:08:56 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18701 0.0 0.1 ? S Aug 14 00:02:52 nginx: worker process \n21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 131675, 'authorizationAllowed': 1167, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 1, 'authenticationUnavailable': 115, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 131679\n Failed: 1\n Service unavailable: 115\n\nAuthorization\n Allowed: 1167\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'131786': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600449473, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n131786 kgrozis command-api E 0:00:28 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 25, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 25 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.146, 'jitter': 1.01, 'lastReceived': 1600448884.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.464, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 620 1024 377 0.146 0.464 1.01\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281527.46723, 'pid': 1720, 'enabled': True, 'uptime': 3167978.01, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1720)\nUptime: 36 days, 15:59:38 (Start time: Thu Aug 13 01:18:47 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 121891, 'bytesOut': 315667673, 'lastHitTime': 1600449508.8205507, 'bytesIn': 19633702}}, 'bytesOut': 315667673, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 128916, 'vrf': 'default', 'lastHitTime': 1600449508.820491, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 12330.054736642283, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 121891, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.12.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.2:443', 'Loopback10 : https://198.18.0.36:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 19633702, 'commandCount': 243782, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 128919\nLast hit: 0 seconds ago\nBytes in: 19634197\nBytes out: 315671125\nRequests: 121894\nCommands: 243788\nDuration: 12330.186 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 121894 19634197 315671125 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.12.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.2:443 \nLoopback10 : https://198.18.0.36:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:32:41 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:54 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:34:26 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:35:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:57 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:32:41 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:33:54 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 14:34:26 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 14:35:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:57 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR1: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR1: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no frameTooShorts errors | 0.04 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:test_interface.py:354 TEST if interface |Ethernet1| counters has frameTooShorts errors on |kg-topology-CloudEosRR1| INFO root:test_interface.py:356 GIVEN interface frameTooShorts errors of |0| INFO root:test_interface.py:358 WHEN interface frameTooShorts errors is |0| INFO root:test_interface.py:366 THEN test case result is |{test_result}| INFO root:test_interface.py:367 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:525 Create test case test_if_intf_counters_has_frame_too_short_errors_on_ in results file INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_fcs_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no fcsErrors errors | 0.04 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:test_interface.py:454 TEST if interface |Ethernet1| counters has fcsErrors errors on |kg-topology-CloudEosRR1| INFO root:test_interface.py:456 GIVEN interface fcsErrors errors of |0| INFO root:test_interface.py:458 WHEN interface fcsErrors errors is |0| INFO root:test_interface.py:466 THEN test case result is |{test_result}| INFO root:test_interface.py:467 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:525 Create test case test_if_intf_counters_has_fcs_errors_on_ in results file INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_fcs_errors_on_ with parameters {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEosRR1] | Verify DNS is running by performing pings and verifying name resolution | 1.34 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| DNS resolution |Passed| for google.com On router |kg-topology-CloudEosRR1| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEosRR1| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR1| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (172.217.6.14) 72(100) bytes of data. 76 bytes from ord38s01-in-f14.1e100.net (172.217.6.14): icmp_seq=1 ttl=101 (truncated) 76 bytes from ord38s01-in-f14.1e100.net (172.217.6.14): icmp_seq=2 ttl=101 (truncated) 76 bytes from ord38s01-in-f14.1e100.net (172.217.6.14): icmp_seq=3 ttl=101 (truncated) 76 bytes from ord38s01-in-f14.1e100.net (172.217.6.14): icmp_seq=4 ttl=101 (truncated) 76 bytes from ord38s01-in-f14.1e100.net (172.217.6.14): icmp_seq=5 ttl=101 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 63ms rtt min/avg/max/mdev = 17.358/17.425/17.627/0.131 ms, pipe 2, ipg/ewma 15.929/17.402 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR1| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.1.67) 72(100) bytes of data. 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=1 ttl=39 time=11.4 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=2 ttl=39 time=11.5 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=3 ttl=39 time=11.4 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=4 ttl=39 time=11.4 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=5 ttl=39 time=11.4 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 110ms rtt min/avg/max/mdev = 11.475/11.488/11.502/0.135 ms, pipe 2, ipg/ewma 27.680/11.486 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR1| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=39 time=23.4 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=39 time=23.4 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=39 time=23.4 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=39 time=23.4 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=39 time=23.4 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 66ms rtt min/avg/max/mdev = 23.422/23.429/23.441/0.007 ms, pipe 3, ipg/ewma 16.708/23.434 ms | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_symbol_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no alignmentErrors errors | 0.07 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:test_interface.py:554 TEST if interface |Ethernet1| counters has symbolErrors errors on |kg-topology-CloudEosRR1| INFO root:test_interface.py:556 GIVEN interface symbolErrors errors of |0| INFO root:test_interface.py:558 WHEN interface symbolErrors errors is |0| INFO root:test_interface.py:568 THEN test case result is |{test_result}| INFO root:test_interface.py:569 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:525 Create test case test_if_intf_counters_has_symbol_errors_on_ in results file INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_symbol_errors_on_ with parameters {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_in_counters_are_discarding_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no inDiscards | 0.11 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|. GIVEN interface outbound discards of |0|. WHEN interface outbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:525 Create test case test_if_intf_in_counters_are_discarding_on_ in results file INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_in_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'fail_reason': '', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1'} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest physical state is link up | 0.56 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEosRR1 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:370 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:417 Verify if kg-topology-CloudEosRR1 DUT is a VEOS instance INFO root:tests_tools.py:421 kg-topology-CloudEosRR1 is a VEOS instance so returning True INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:525 Create test case test_if_intf_phy_status_connected_on_ in results file INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'actual_output': None, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEosRR1] | Verify a list of extension are installed on a DUT | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| awslogs.swix extension is |installed| On router |kg-topology-CloudEosRR1| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show extensions| on kg-topology-CloudEosRR1 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEosRR1| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEosRR1| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEosRR1] | Verify local log messages | 0.03 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| message |critical| NOT found in local log On router |kg-topology-CloudEosRR1| message |warning| NOT found in local log On router |kg-topology-CloudEosRR1| message |ECC| NOT found in local log On router |kg-topology-CloudEosRR1| message |servers errors| NOT found in local log On router |kg-topology-CloudEosRR1| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show logging| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show logging| on kg-topology-CloudEosRR1 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:32:41 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:33:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:33:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:33:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:33:54 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:34:26 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:35:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:57 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:32:41 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:33:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:33:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:33:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:33:54 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:34:26 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:35:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:57 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:32:41 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:33:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:33:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:33:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:33:54 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:34:26 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:35:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:57 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:32:41 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:33:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:33:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:33:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:33:54 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:34:26 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:35:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:57 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:32:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:32:41 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:33:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:33:46 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:33:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:33:54 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 14:34:26 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 14:35:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:07 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:27 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:57 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:16 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEosRR1] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show ntp status| on kg-topology-CloudEosRR1 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEosRR1| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 25 ms polling server every 1024 s | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no frameLongShorts errors | 0.09 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:test_interface.py:404 TEST if interface |Ethernet1| counters has frameTooLongs errors on |kg-topology-CloudEosRR1| INFO root:test_interface.py:406 GIVEN interface frameTooLongs errors of |0| INFO root:test_interface.py:408 WHEN interface frameTooLongs errors is |0| INFO root:test_interface.py:416 THEN test case result is |{test_result}| INFO root:test_interface.py:417 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:525 Create test case test_if_intf_counters_has_frame_too_long_errors_on_ in results file INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEosRR1] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEosRR1| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 17:18:18 up 36 days, 16:00, 0 users, load average: 1.09, 1.13, 1.16 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 37-04:20:38 Sfe 1720 2.4 1.8 ? Sl Aug 13 21:12:58 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 21946 0.7 0.7 ? SNl 14:45:06 00:01:07 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 02:53:54 ConfigAgent 1296 0.2 0.9 ? S Aug 13 02:04:51 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 02:08:50 Sysdb 1735 0.1 1.7 ? S Aug 13 01:05:18 SuperServer 1759 0.1 1.0 ? S Aug 13 01:42:50 AgentMonitor 1992 0.1 1.6 ? S Aug 13 01:01:52 IpRib 1 0.0 0.0 ? Ss Aug 13 00:08:07 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:23 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:03:49 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:06:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1468 0.0 0.0 ? S Aug 13 00:12:33 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:02:50 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:06:24 StageMgr 1575 0.0 1.4 ? S Aug 13 00:15:19 Fru 1576 0.0 1.8 ? S Aug 13 00:06:22 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:23:28 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:16:08 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:17:44 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:17:36 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:38:44 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:16:23 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:20:06 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:23:02 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:49:51 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:06:27 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:10:09 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:18:53 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:16:13 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:36:25 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:30:27 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:07:34 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:16:05 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:16:21 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:25:17 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:16:17 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:18:36 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:07:33 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:07:32 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:15:36 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:06:26 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:06:26 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:22:37 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:06:28 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:06:27 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:16:24 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:07:35 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:07:42 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:16:26 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:07:37 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:36:20 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:06:29 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:46:41 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:01:50 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog 5538 0.0 0.0 ? S 16:57:00 00:00:00 [kworker/0:0] 5988 0.0 0.0 ? S 17:03:00 00:00:00 [kworker/0:1] 6771 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:3] 7863 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:2] 7883 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:4] 8463 0.0 0.0 ? Rs 17:18:17 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:08:56 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:02:52 nginx: worker process 21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEosRR1] | Verify tacacs messages are received correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show tacacs| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:394 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:400 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEosRR1| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest protocol statuses are up | 0.48 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:370 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR1 INFO root:test_interface.py:79 TEST if interface |Ethernet1| link prootocol statuses are up on |kg-topology-CloudEosRR1| INFO root:test_interface.py:81 GIVEN interface status is |up| INFO root:test_interface.py:85 WHEN interface status is |up| INFO root:test_interface.py:88 THEN test case result is |True| INFO root:test_interface.py:89 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:525 Create test case test_if_intf_protocol_status_is_connected_on_ in results file INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'actual_output': 'up', 'test_result': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_out_counters_are_discarding_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no outDiscards | 0.12 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - - On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEosRR1 INFO root:test_interface.py:619 TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| INFO root:test_interface.py:621 GIVEN interface outbound discards of |0| INFO root:test_interface.py:623 WHEN interface outbound discards are |0| INFO root:test_interface.py:632 THEN test case result is |{test_result}| INFO root:test_interface.py:633 OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:525 Create test case test_if_intf_out_counters_are_discarding_on_ in results file INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_out_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEosRR1] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show zerotouch| on kg-topology-CloudEosRR1 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEosRR1| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEosRR2] | Verify a list of extension are installed on a DUT | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| awslogs.swix extension is |installed| On router |kg-topology-CloudEosRR2| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show extensions| on kg-topology-CloudEosRR2 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEosRR2| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEosRR2| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest does not have output errors | 0.08 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:test_interface.py:305 TEST if interface |Ethernet1| counters has output errors on |kg-topology-CloudEosRR1| INFO root:test_interface.py:307 GIVEN interface output errors of |0| INFO root:test_interface.py:309 WHEN interface output errors is |{actual_output}| INFO root:test_interface.py:316 THEN test case result is |{test_result}| INFO root:test_interface.py:317 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:525 Create test case test_if_intf_counters_has_output_errors_on_ in results file INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEosRR2] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEosRR2| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 128880 Last hit: 0 seconds ago Bytes in: 19628085 Bytes out: 315592137 Requests: 121854 Commands: 243708 Duration: 9959.926 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 121854 19628085 315592137 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEosRR1] | Verify memory is not exceeding high utlization | 0.07 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |dut_name| memory utilization percent is |38.14125095086036%| and should be under 70% -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show version| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show version| on kg-topology-CloudEosRR1 INFO root:test_memory.py:71 TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_memory.py:73 GIVEN memory utilization is less than |70%| INFO root:test_memory.py:80 WHEN memory utilization is |38.14125095086036| INFO root:test_memory.py:83 THEN test case result is |True%| INFO root:test_memory.py:84 OUTPUT of |show version| is : Arista vEOS Hardware version: Serial number: 9B112703F293F47ADC3EE25318457B64 System MAC address: 0246.bb59.d5ae Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 5 weeks, 1 days, 16 hours and 0 minutes Total memory: 7761392 kB Free memory: 2960292 kB INFO root:tests_tools.py:502 Find the Index for test suite: test_memory.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}]}] INFO root:tests_tools.py:512 Create test suite test_memory.py in results file INFO root:tests_tools.py:517 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:525 Create test case test_memory_utilization_on_ in results file INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True, 'actual_output': 38.14125095086036, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEosRR2] | Verify a list of extension are not erroring on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| awslogs.swix extension error is |False| On router |kg-topology-CloudEosRR2| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show extensions| on kg-topology-CloudEosRR2 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEosRR2| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEosRR2| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_alignment_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no alignmentErrors errors | 0.09 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:test_interface.py:504 TEST if interface |Ethernet1| counters has alignmentErrors errors on |kg-topology-CloudEosRR1| INFO root:test_interface.py:506 GIVEN interface alignmentErrors errors of |0| INFO root:test_interface.py:508 WHEN interface alignmentErrors errors is |0| INFO root:test_interface.py:516 THEN test case result is |{test_result}| INFO root:test_interface.py:517 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:525 Create test case test_if_intf_counters_has_alignment_errors_on_ in results file INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_alignment_errors_on_ with parameters {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEosRR2] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEosRR2| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 128880 Last hit: 0 seconds ago Bytes in: 19628085 Bytes out: 315592137 Requests: 121854 Commands: 243708 Duration: 9959.926 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 121854 19628085 315592137 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEosRR1] | Verify tacacs messages are sending correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show tacacs| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:394 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:400 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEosRR1| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEosRR2] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEosRR2| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 128880 Last hit: 0 seconds ago Bytes in: 19628085 Bytes out: 315592137 Requests: 121854 Commands: 243708 Duration: 9959.926 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 121854 19628085 315592137 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEosRR1] | Verify zerotoucn-config file is on flash | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEosRR1 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEosRR1| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7293403136 bytes free) | ||||
| Passed | kg-topology-CloudEosRR2 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEosRR2] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEosRR1] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show ntp associations| on kg-topology-CloudEosRR1 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEosRR1| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 620 1024 377 0.146 0.464 1.01 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEosRR2] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEosRR2| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 128880 Last hit: 0 seconds ago Bytes in: 19628085 Bytes out: 315592137 Requests: 121854 Commands: 243708 Duration: 9959.926 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 121854 19628085 315592137 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEosRR2] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show users detail| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEosRR2| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 131860 kgrozis command-api E 0:00:26 local | ||||
| Passed | kg-topology-CloudEosRR1 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEosRR1] | Verify username is set correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| |ec2-user| username is |configured| On router |kg-topology-CloudEosRR1| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:374 Verified output for show command |show running-config section username| on kg-topology-CloudEosRR1 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEosRR1| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEosRR1| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEosRR2] | Verify filesystem is correct and expected files are present | 1.17 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEosRR2|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEosRR2|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEosRR2| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-CloudEosRR2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281703.2126422, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.4'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281552.0032377, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:54:9b:7c:b0:0f', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449494.105055, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:7c:b0:0f', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281549.902182, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:54:9b:a1:17:56', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 29105.02776330684, 'inPktsRate': 27.816395617977022, 'outBitsRate': 52170.58848099474, 'updateInterval': 300.0, 'outPktsRate': 31.42845928962508}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 80748895, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449494.106284, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 8989490394, 'outDiscards': 0, 'outOctets': 15246095148, 'inUcastPkts': 72053959, 'inTotalPkts': 72053959, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.13.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:a1:17:56', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281529.2862365, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.38'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 2 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 31 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 25 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR2', 'hostname': 'kg-topology-CloudEosRR2'}, 'text': 'Hostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3168037.08, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '93F97AD3A1044C742872BA1CFA684D63', 'systemMacAddress': '06:54:9b:7c:b0:0f', 'bootupTimestamp': 1597281459.0, 'memFree': 3003936, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 16 hours and 0 minutes\nTotal memory: 7818736 kB\nFree memory: 3003296 kB\n\n'}, 'show processes': {'json': {'processes': {'2009': {'totalActiveTime': 3242795, 'memPct': 3.4, 'cpuPct': 102.0, 'startTime': 1597281536.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '30290': {'totalActiveTime': 32, 'memPct': 0.7, 'cpuPct': 1.6, 'startTime': 1600447505.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1714': {'totalActiveTime': 12829, 'memPct': 1.9, 'cpuPct': 0.4, 'startTime': 1597281523.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1255': {'totalActiveTime': 6001, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1566': {'totalActiveTime': 6141, 'memPct': 7.3, 'cpuPct': 0.1, 'startTime': 1597281501.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1': {'totalActiveTime': 308, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 28, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '6': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '7': {'totalActiveTime': 49, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 4, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 87, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281459.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '346': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:2]', 'state': 'S', 'ttyName': '?'}, '384': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '732': {'totalActiveTime': 89, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '734': {'totalActiveTime': 61, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '742': {'totalActiveTime': 187, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '777': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '797': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '812': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '823': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '951': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '979': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '991': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1043': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281473.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1163': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1164': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1197': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1238': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1240': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1254': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1462': {'totalActiveTime': 702, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1470': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1485': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1522': {'totalActiveTime': 164, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1523': {'totalActiveTime': 2340, 'memPct': 2.5, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1565': {'totalActiveTime': 47, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 113, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1571': {'totalActiveTime': 42, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281502.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1695': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1696': {'totalActiveTime': 598, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1702': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1704': {'totalActiveTime': 233, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1711': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1712': {'totalActiveTime': 140, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1723': {'totalActiveTime': 277, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1727': {'totalActiveTime': 1103, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1729': {'totalActiveTime': 2230, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 241, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1736': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1737': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1738': {'totalActiveTime': 187, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 486, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1745': {'totalActiveTime': 1695, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1749': {'totalActiveTime': 42, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1751': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1753': {'totalActiveTime': 2535, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 95, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 601, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1760': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 222, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1763': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1764': {'totalActiveTime': 1257, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 309, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1780': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1782': {'totalActiveTime': 142, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1800': {'totalActiveTime': 196, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1810': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1813': {'totalActiveTime': 214, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1830': {'totalActiveTime': 293, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1850': {'totalActiveTime': 224, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1855': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 172, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1872': {'totalActiveTime': 141, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1876': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1880': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1883': {'totalActiveTime': 75, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1885': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1886': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1887': {'totalActiveTime': 112, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1889': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1890': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1892': {'totalActiveTime': 40, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1893': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1895': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1905': {'totalActiveTime': 423, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1913': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1916': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 40, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1923': {'totalActiveTime': 230, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1933': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1935': {'totalActiveTime': 141, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1938': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1940': {'totalActiveTime': 515, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1943': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1944': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1945': {'totalActiveTime': 146, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1957': {'totalActiveTime': 247, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1964': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1965': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1966': {'totalActiveTime': 145, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1974': {'totalActiveTime': 711, 'memPct': 2.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2002': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2008': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2152': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448280.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '2286': {'totalActiveTime': 36, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2340': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2602': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2603': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2605': {'totalActiveTime': 43, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2608': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448640.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '2656': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2658': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2664': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2667': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2668': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281550.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2736': {'totalActiveTime': 622, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2739': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2766': {'totalActiveTime': 65, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2770': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3341': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3343': {'totalActiveTime': 105, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3417': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448940.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '4492': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449301.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '5067': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449495.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '18367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18369': {'totalActiveTime': 150, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18415': {'totalActiveTime': 127, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30271': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600447504.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3168037.82, 'loadAvg': [1.15, 1.17, 1.17], 'users': 0, 'currentTime': 1600449496.789083}}, 'text': " 17:18:17 up 36 days, 16:00, 0 users, load average: 1.15, 1.17, 1.17\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2009 102 3.4 ? Sl Aug 13 37-12:46:36 Sfe\n30290 1.6 0.7 ? SNl 16:45:05 00:00:32 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1714 0.4 1.9 ? Sl Aug 13 03:33:49 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1255 0.1 0.9 ? S Aug 13 01:40:01 ProcMgr-worker\n 1566 0.1 7.3 ? Sl Aug 13 01:42:21 ConfigAgent\n 1 0.0 0.0 ? Ss Aug 13 00:05:08 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2]\n 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 732 0.0 0.0 ? Ss Aug 13 00:01:29 /usr/lib/systemd/systemd-logind\n 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor\n 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n\n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60\n 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1462 0.0 0.0 ? S Aug 13 00:11:42 /usr/bin/EosOomAdjust\n 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu]\n 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1522 0.0 0.0 ? S Aug 13 00:02:44 /usr/bin/SlabMonitor\n 1523 0.0 2.5 ? S Aug 13 00:39:00 Sysdb\n 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr\n 1570 0.0 1.4 ? S Aug 13 00:01:53 Fru\n 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher\n 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1696 0.0 1.2 ? S Aug 13 00:09:58 Lldp\n 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1704 0.0 1.2 ? S Aug 13 00:03:53 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1723 0.0 1.4 ? S Aug 13 00:04:37 Bfd\n 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1727 0.0 1.3 ? S Aug 13 00:18:23 Lag\n 1729 0.0 1.7 ? S Aug 13 00:37:10 SuperServer\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.5 ? S Aug 13 00:04:01 Ira\n 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1738 0.0 1.1 ? S Aug 13 00:03:07 LedPolicy\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.3 ? S Aug 13 00:08:06 EventMgr\n 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1745 0.0 1.2 ? S Aug 13 00:28:15 StpTxRx\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld\n 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1753 0.0 1.0 ? S Aug 13 00:42:15 AgentMonitor\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel\n 1757 0.0 1.5 ? Sl Aug 13 00:10:01 Aaa\n 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 1.2 ? S Aug 13 00:03:42 StpTopology\n 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1764 0.0 1.4 ? S Aug 13 00:20:57 Acl\n 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.1 ? S Aug 13 00:05:09 Stp\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1782 0.0 1.1 ? S Aug 13 00:02:22 KernelNetworkInfo\n 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1800 0.0 1.2 ? S Aug 13 00:03:16 McastCommon6\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1813 0.0 1.2 ? S Aug 13 00:03:34 LacpTxAgent\n 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1830 0.0 1.5 ? S Aug 13 00:04:53 Arp\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1850 0.0 1.4 ? S Aug 13 00:03:44 KernelFib\n 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1866 0.0 1.2 ? S Aug 13 00:02:52 Qos\n 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1872 0.0 1.1 ? S Aug 13 00:02:21 Thermostat\n 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib\n 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent\n 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse\n 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager\n 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1905 0.0 1.4 ? S Aug 13 00:07:03 Ebra\n 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1916 0.0 1.1 ? S Aug 13 00:00:40 ReloadCauseAgent\n 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.0 ? S Aug 13 00:00:40 SharedSecretProfile\n 1923 0.0 1.5 ? S Aug 13 00:03:50 IgmpSnooping\n 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1935 0.0 1.3 ? S Aug 13 00:02:21 StaticRoute\n 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1940 0.0 1.6 ? S Aug 13 00:08:35 IpRib\n 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1945 0.0 1.8 ? S Aug 13 00:02:26 BgpCliHelper\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1957 0.0 1.3 ? S Aug 13 00:04:07 ConnectedRoute\n 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput\n 1974 0.0 2.2 ? Sl Aug 13 00:11:51 Bgp\n 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2152 0.0 0.0 ? S 16:58:00 00:00:00 [kworker/0:1]\n 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n\n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager\n 2608 0.0 0.0 ? S 17:04:00 00:00:00 [kworker/0:2]\n 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console\n 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2736 0.0 1.2 ? S Aug 13 00:10:22 Ipsec\n 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3343 0.0 0.1 ? Ssl Aug 13 00:01:45 /usr/libexec/strongswan/charon --use-syslog\n 3417 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:0]\n 4492 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:3]\n 5082 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18369 0.0 1.3 ? Sl Aug 14 00:02:30 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18415 0.0 0.1 ? S Aug 14 00:02:07 nginx: worker process \n30271 0.0 0.0 ? S 16:45:04 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 131751, 'authorizationAllowed': 1278, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 0, 'authenticationUnavailable': 120, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 131755\n Failed: 0\n Service unavailable: 120\n\nAuthorization\n Allowed: 1278\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'131860': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600449473, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n131860 kgrozis command-api E 0:00:27 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 256, 'stratum': 4, 'maxEstimatedError': 9, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 9 ms\n polling server every 256 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.094, 'jitter': 0.186, 'lastReceived': 1600449344.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.407, 'peerIpAddr': '169.254.169.123', 'pollInterval': 256, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 159 256 377 0.094 0.407 0.186\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281524.130574, 'pid': 1714, 'enabled': True, 'uptime': 3167980.04, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1714)\nUptime: 36 days, 15:59:40 (Start time: Thu Aug 13 01:18:44 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 121853, 'bytesOut': 315591129, 'lastHitTime': 1600449507.1782453, 'bytesIn': 19627920}}, 'bytesOut': 315591129, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 128879, 'vrf': 'default', 'lastHitTime': 1600449507.1782107, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 9959.912822056242, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 121853, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.13.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.4:443', 'Loopback10 : https://198.18.0.38:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 19627920, 'commandCount': 243706, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 128884\nLast hit: 0 seconds ago\nBytes in: 19628680\nBytes out: 315604600\nRequests: 121858\nCommands: 243716\nDuration: 9960.148 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 121858 19628680 315604600 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.13.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.4:443 \nLoopback10 : https://198.18.0.38:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 16:14:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:14 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:45 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:20 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 16:14:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:14 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:45 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:20 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEosRR2: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEosRR2: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEosRR2| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-CloudEosRR2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281703.2126422, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.4'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281552.0032377, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:54:9b:7c:b0:0f', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449494.105055, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:7c:b0:0f', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281549.902182, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:54:9b:a1:17:56', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 29105.02776330684, 'inPktsRate': 27.816395617977022, 'outBitsRate': 52170.58848099474, 'updateInterval': 300.0, 'outPktsRate': 31.42845928962508}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 80748895, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449494.106284, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 8989490394, 'outDiscards': 0, 'outOctets': 15246095148, 'inUcastPkts': 72053959, 'inTotalPkts': 72053959, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.13.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:a1:17:56', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281529.2862365, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.38'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 2 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 31 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 25 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR2', 'hostname': 'kg-topology-CloudEosRR2'}, 'text': 'Hostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3168037.08, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '93F97AD3A1044C742872BA1CFA684D63', 'systemMacAddress': '06:54:9b:7c:b0:0f', 'bootupTimestamp': 1597281459.0, 'memFree': 3003936, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 16 hours and 0 minutes\nTotal memory: 7818736 kB\nFree memory: 3003296 kB\n\n'}, 'show processes': {'json': {'processes': {'2009': {'totalActiveTime': 3242795, 'memPct': 3.4, 'cpuPct': 102.0, 'startTime': 1597281536.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '30290': {'totalActiveTime': 32, 'memPct': 0.7, 'cpuPct': 1.6, 'startTime': 1600447505.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1714': {'totalActiveTime': 12829, 'memPct': 1.9, 'cpuPct': 0.4, 'startTime': 1597281523.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1255': {'totalActiveTime': 6001, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1566': {'totalActiveTime': 6141, 'memPct': 7.3, 'cpuPct': 0.1, 'startTime': 1597281501.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1': {'totalActiveTime': 308, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 28, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '6': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '7': {'totalActiveTime': 49, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 4, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 87, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281459.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '346': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:2]', 'state': 'S', 'ttyName': '?'}, '384': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '732': {'totalActiveTime': 89, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '734': {'totalActiveTime': 61, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '742': {'totalActiveTime': 187, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '777': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '797': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '812': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '823': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '951': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '979': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '991': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1043': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281473.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1163': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1164': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1197': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1238': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1240': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1254': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1462': {'totalActiveTime': 702, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1470': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1485': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1522': {'totalActiveTime': 164, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1523': {'totalActiveTime': 2340, 'memPct': 2.5, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1565': {'totalActiveTime': 47, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 113, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1571': {'totalActiveTime': 42, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281502.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1695': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1696': {'totalActiveTime': 598, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1702': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1704': {'totalActiveTime': 233, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1711': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1712': {'totalActiveTime': 140, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1723': {'totalActiveTime': 277, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1727': {'totalActiveTime': 1103, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1729': {'totalActiveTime': 2230, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 241, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1736': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1737': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1738': {'totalActiveTime': 187, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 486, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1745': {'totalActiveTime': 1695, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1749': {'totalActiveTime': 42, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1751': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1753': {'totalActiveTime': 2535, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 95, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 601, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1760': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 222, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1763': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1764': {'totalActiveTime': 1257, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 309, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1780': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1782': {'totalActiveTime': 142, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1800': {'totalActiveTime': 196, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1810': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1813': {'totalActiveTime': 214, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1830': {'totalActiveTime': 293, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1850': {'totalActiveTime': 224, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1855': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 172, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1872': {'totalActiveTime': 141, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1876': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1880': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1883': {'totalActiveTime': 75, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1885': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1886': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1887': {'totalActiveTime': 112, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1889': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1890': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1892': {'totalActiveTime': 40, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1893': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1895': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1905': {'totalActiveTime': 423, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1913': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1916': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 40, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1923': {'totalActiveTime': 230, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1933': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1935': {'totalActiveTime': 141, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1938': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1940': {'totalActiveTime': 515, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1943': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1944': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1945': {'totalActiveTime': 146, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1957': {'totalActiveTime': 247, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1964': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1965': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1966': {'totalActiveTime': 145, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1974': {'totalActiveTime': 711, 'memPct': 2.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2002': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2008': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2152': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448280.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '2286': {'totalActiveTime': 36, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2340': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2602': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2603': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2605': {'totalActiveTime': 43, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2608': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448640.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '2656': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2658': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2664': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2667': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2668': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281550.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2736': {'totalActiveTime': 622, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2739': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2766': {'totalActiveTime': 65, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2770': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3341': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3343': {'totalActiveTime': 105, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3417': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448940.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '4492': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449301.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '5067': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449495.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '18367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18369': {'totalActiveTime': 150, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18415': {'totalActiveTime': 127, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30271': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600447504.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3168037.82, 'loadAvg': [1.15, 1.17, 1.17], 'users': 0, 'currentTime': 1600449496.789083}}, 'text': " 17:18:17 up 36 days, 16:00, 0 users, load average: 1.15, 1.17, 1.17\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2009 102 3.4 ? Sl Aug 13 37-12:46:36 Sfe\n30290 1.6 0.7 ? SNl 16:45:05 00:00:32 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1714 0.4 1.9 ? Sl Aug 13 03:33:49 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1255 0.1 0.9 ? S Aug 13 01:40:01 ProcMgr-worker\n 1566 0.1 7.3 ? Sl Aug 13 01:42:21 ConfigAgent\n 1 0.0 0.0 ? Ss Aug 13 00:05:08 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2]\n 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 732 0.0 0.0 ? Ss Aug 13 00:01:29 /usr/lib/systemd/systemd-logind\n 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor\n 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n\n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60\n 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1462 0.0 0.0 ? S Aug 13 00:11:42 /usr/bin/EosOomAdjust\n 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu]\n 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1522 0.0 0.0 ? S Aug 13 00:02:44 /usr/bin/SlabMonitor\n 1523 0.0 2.5 ? S Aug 13 00:39:00 Sysdb\n 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr\n 1570 0.0 1.4 ? S Aug 13 00:01:53 Fru\n 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher\n 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1696 0.0 1.2 ? S Aug 13 00:09:58 Lldp\n 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1704 0.0 1.2 ? S Aug 13 00:03:53 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1723 0.0 1.4 ? S Aug 13 00:04:37 Bfd\n 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1727 0.0 1.3 ? S Aug 13 00:18:23 Lag\n 1729 0.0 1.7 ? S Aug 13 00:37:10 SuperServer\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.5 ? S Aug 13 00:04:01 Ira\n 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1738 0.0 1.1 ? S Aug 13 00:03:07 LedPolicy\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.3 ? S Aug 13 00:08:06 EventMgr\n 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1745 0.0 1.2 ? S Aug 13 00:28:15 StpTxRx\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld\n 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1753 0.0 1.0 ? S Aug 13 00:42:15 AgentMonitor\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel\n 1757 0.0 1.5 ? Sl Aug 13 00:10:01 Aaa\n 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 1.2 ? S Aug 13 00:03:42 StpTopology\n 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1764 0.0 1.4 ? S Aug 13 00:20:57 Acl\n 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.1 ? S Aug 13 00:05:09 Stp\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1782 0.0 1.1 ? S Aug 13 00:02:22 KernelNetworkInfo\n 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1800 0.0 1.2 ? S Aug 13 00:03:16 McastCommon6\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1813 0.0 1.2 ? S Aug 13 00:03:34 LacpTxAgent\n 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1830 0.0 1.5 ? S Aug 13 00:04:53 Arp\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1850 0.0 1.4 ? S Aug 13 00:03:44 KernelFib\n 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1866 0.0 1.2 ? S Aug 13 00:02:52 Qos\n 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1872 0.0 1.1 ? S Aug 13 00:02:21 Thermostat\n 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib\n 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent\n 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse\n 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager\n 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1905 0.0 1.4 ? S Aug 13 00:07:03 Ebra\n 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1916 0.0 1.1 ? S Aug 13 00:00:40 ReloadCauseAgent\n 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.0 ? S Aug 13 00:00:40 SharedSecretProfile\n 1923 0.0 1.5 ? S Aug 13 00:03:50 IgmpSnooping\n 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1935 0.0 1.3 ? S Aug 13 00:02:21 StaticRoute\n 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1940 0.0 1.6 ? S Aug 13 00:08:35 IpRib\n 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1945 0.0 1.8 ? S Aug 13 00:02:26 BgpCliHelper\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1957 0.0 1.3 ? S Aug 13 00:04:07 ConnectedRoute\n 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput\n 1974 0.0 2.2 ? Sl Aug 13 00:11:51 Bgp\n 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2152 0.0 0.0 ? S 16:58:00 00:00:00 [kworker/0:1]\n 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n\n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager\n 2608 0.0 0.0 ? S 17:04:00 00:00:00 [kworker/0:2]\n 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console\n 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2736 0.0 1.2 ? S Aug 13 00:10:22 Ipsec\n 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3343 0.0 0.1 ? Ssl Aug 13 00:01:45 /usr/libexec/strongswan/charon --use-syslog\n 3417 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:0]\n 4492 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:3]\n 5082 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18369 0.0 1.3 ? Sl Aug 14 00:02:30 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18415 0.0 0.1 ? S Aug 14 00:02:07 nginx: worker process \n30271 0.0 0.0 ? S 16:45:04 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 131751, 'authorizationAllowed': 1278, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 0, 'authenticationUnavailable': 120, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 131755\n Failed: 0\n Service unavailable: 120\n\nAuthorization\n Allowed: 1278\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'131860': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600449473, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n131860 kgrozis command-api E 0:00:27 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 256, 'stratum': 4, 'maxEstimatedError': 9, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 9 ms\n polling server every 256 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.094, 'jitter': 0.186, 'lastReceived': 1600449344.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.407, 'peerIpAddr': '169.254.169.123', 'pollInterval': 256, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 159 256 377 0.094 0.407 0.186\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281524.130574, 'pid': 1714, 'enabled': True, 'uptime': 3167980.04, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1714)\nUptime: 36 days, 15:59:40 (Start time: Thu Aug 13 01:18:44 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 121853, 'bytesOut': 315591129, 'lastHitTime': 1600449507.1782453, 'bytesIn': 19627920}}, 'bytesOut': 315591129, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 128879, 'vrf': 'default', 'lastHitTime': 1600449507.1782107, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 9959.912822056242, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 121853, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.13.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.4:443', 'Loopback10 : https://198.18.0.38:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 19627920, 'commandCount': 243706, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 128884\nLast hit: 0 seconds ago\nBytes in: 19628680\nBytes out: 315604600\nRequests: 121858\nCommands: 243716\nDuration: 9960.148 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 121858 19628680 315604600 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.13.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.4:443 \nLoopback10 : https://198.18.0.38:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 16:14:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:14 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:45 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:20 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 16:14:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:14 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:45 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:20 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEosRR2: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEosRR2: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEosRR2| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-CloudEosRR2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281703.2126422, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.4'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281552.0032377, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:54:9b:7c:b0:0f', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449494.105055, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:7c:b0:0f', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281549.902182, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:54:9b:a1:17:56', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 29105.02776330684, 'inPktsRate': 27.816395617977022, 'outBitsRate': 52170.58848099474, 'updateInterval': 300.0, 'outPktsRate': 31.42845928962508}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 80748895, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449494.106284, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 8989490394, 'outDiscards': 0, 'outOctets': 15246095148, 'inUcastPkts': 72053959, 'inTotalPkts': 72053959, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.13.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:a1:17:56', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281529.2862365, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.38'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 2 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 31 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 25 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR2', 'hostname': 'kg-topology-CloudEosRR2'}, 'text': 'Hostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3168037.08, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '93F97AD3A1044C742872BA1CFA684D63', 'systemMacAddress': '06:54:9b:7c:b0:0f', 'bootupTimestamp': 1597281459.0, 'memFree': 3003936, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 16 hours and 0 minutes\nTotal memory: 7818736 kB\nFree memory: 3003296 kB\n\n'}, 'show processes': {'json': {'processes': {'2009': {'totalActiveTime': 3242795, 'memPct': 3.4, 'cpuPct': 102.0, 'startTime': 1597281536.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '30290': {'totalActiveTime': 32, 'memPct': 0.7, 'cpuPct': 1.6, 'startTime': 1600447505.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1714': {'totalActiveTime': 12829, 'memPct': 1.9, 'cpuPct': 0.4, 'startTime': 1597281523.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1255': {'totalActiveTime': 6001, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1566': {'totalActiveTime': 6141, 'memPct': 7.3, 'cpuPct': 0.1, 'startTime': 1597281501.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1': {'totalActiveTime': 308, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 28, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '6': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '7': {'totalActiveTime': 49, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 4, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 87, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281459.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '346': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:2]', 'state': 'S', 'ttyName': '?'}, '384': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '732': {'totalActiveTime': 89, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '734': {'totalActiveTime': 61, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '742': {'totalActiveTime': 187, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '777': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '797': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '812': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '823': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '951': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '979': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '991': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1043': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281473.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1163': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1164': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1197': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1238': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1240': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1254': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1462': {'totalActiveTime': 702, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1470': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1485': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1522': {'totalActiveTime': 164, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1523': {'totalActiveTime': 2340, 'memPct': 2.5, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1565': {'totalActiveTime': 47, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 113, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1571': {'totalActiveTime': 42, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281502.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1695': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1696': {'totalActiveTime': 598, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1702': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1704': {'totalActiveTime': 233, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1711': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1712': {'totalActiveTime': 140, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1723': {'totalActiveTime': 277, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1727': {'totalActiveTime': 1103, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1729': {'totalActiveTime': 2230, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 241, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1736': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1737': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1738': {'totalActiveTime': 187, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 486, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1745': {'totalActiveTime': 1695, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1749': {'totalActiveTime': 42, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1751': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1753': {'totalActiveTime': 2535, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 95, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 601, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1760': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 222, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1763': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1764': {'totalActiveTime': 1257, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 309, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1780': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1782': {'totalActiveTime': 142, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1800': {'totalActiveTime': 196, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1810': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1813': {'totalActiveTime': 214, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1830': {'totalActiveTime': 293, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1850': {'totalActiveTime': 224, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1855': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 172, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1872': {'totalActiveTime': 141, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1876': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1880': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1883': {'totalActiveTime': 75, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1885': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1886': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1887': {'totalActiveTime': 112, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1889': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1890': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1892': {'totalActiveTime': 40, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1893': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1895': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1905': {'totalActiveTime': 423, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1913': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1916': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 40, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1923': {'totalActiveTime': 230, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1933': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1935': {'totalActiveTime': 141, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1938': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1940': {'totalActiveTime': 515, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1943': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1944': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1945': {'totalActiveTime': 146, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1957': {'totalActiveTime': 247, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1964': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1965': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1966': {'totalActiveTime': 145, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1974': {'totalActiveTime': 711, 'memPct': 2.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2002': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2008': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2152': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448280.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '2286': {'totalActiveTime': 36, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2340': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2602': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2603': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2605': {'totalActiveTime': 43, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2608': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448640.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '2656': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2658': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2664': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2667': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2668': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281550.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2736': {'totalActiveTime': 622, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2739': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2766': {'totalActiveTime': 65, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2770': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3341': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3343': {'totalActiveTime': 105, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3417': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448940.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '4492': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449301.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '5067': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449495.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '18367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18369': {'totalActiveTime': 150, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18415': {'totalActiveTime': 127, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30271': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600447504.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3168037.82, 'loadAvg': [1.15, 1.17, 1.17], 'users': 0, 'currentTime': 1600449496.789083}}, 'text': " 17:18:17 up 36 days, 16:00, 0 users, load average: 1.15, 1.17, 1.17\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2009 102 3.4 ? Sl Aug 13 37-12:46:36 Sfe\n30290 1.6 0.7 ? SNl 16:45:05 00:00:32 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1714 0.4 1.9 ? Sl Aug 13 03:33:49 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1255 0.1 0.9 ? S Aug 13 01:40:01 ProcMgr-worker\n 1566 0.1 7.3 ? Sl Aug 13 01:42:21 ConfigAgent\n 1 0.0 0.0 ? Ss Aug 13 00:05:08 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2]\n 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 732 0.0 0.0 ? Ss Aug 13 00:01:29 /usr/lib/systemd/systemd-logind\n 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor\n 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n\n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60\n 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1462 0.0 0.0 ? S Aug 13 00:11:42 /usr/bin/EosOomAdjust\n 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu]\n 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1522 0.0 0.0 ? S Aug 13 00:02:44 /usr/bin/SlabMonitor\n 1523 0.0 2.5 ? S Aug 13 00:39:00 Sysdb\n 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr\n 1570 0.0 1.4 ? S Aug 13 00:01:53 Fru\n 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher\n 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1696 0.0 1.2 ? S Aug 13 00:09:58 Lldp\n 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1704 0.0 1.2 ? S Aug 13 00:03:53 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1723 0.0 1.4 ? S Aug 13 00:04:37 Bfd\n 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1727 0.0 1.3 ? S Aug 13 00:18:23 Lag\n 1729 0.0 1.7 ? S Aug 13 00:37:10 SuperServer\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.5 ? S Aug 13 00:04:01 Ira\n 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1738 0.0 1.1 ? S Aug 13 00:03:07 LedPolicy\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.3 ? S Aug 13 00:08:06 EventMgr\n 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1745 0.0 1.2 ? S Aug 13 00:28:15 StpTxRx\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld\n 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1753 0.0 1.0 ? S Aug 13 00:42:15 AgentMonitor\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel\n 1757 0.0 1.5 ? Sl Aug 13 00:10:01 Aaa\n 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 1.2 ? S Aug 13 00:03:42 StpTopology\n 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1764 0.0 1.4 ? S Aug 13 00:20:57 Acl\n 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.1 ? S Aug 13 00:05:09 Stp\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1782 0.0 1.1 ? S Aug 13 00:02:22 KernelNetworkInfo\n 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1800 0.0 1.2 ? S Aug 13 00:03:16 McastCommon6\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1813 0.0 1.2 ? S Aug 13 00:03:34 LacpTxAgent\n 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1830 0.0 1.5 ? S Aug 13 00:04:53 Arp\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1850 0.0 1.4 ? S Aug 13 00:03:44 KernelFib\n 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1866 0.0 1.2 ? S Aug 13 00:02:52 Qos\n 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1872 0.0 1.1 ? S Aug 13 00:02:21 Thermostat\n 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib\n 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent\n 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse\n 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager\n 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1905 0.0 1.4 ? S Aug 13 00:07:03 Ebra\n 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1916 0.0 1.1 ? S Aug 13 00:00:40 ReloadCauseAgent\n 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.0 ? S Aug 13 00:00:40 SharedSecretProfile\n 1923 0.0 1.5 ? S Aug 13 00:03:50 IgmpSnooping\n 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1935 0.0 1.3 ? S Aug 13 00:02:21 StaticRoute\n 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1940 0.0 1.6 ? S Aug 13 00:08:35 IpRib\n 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1945 0.0 1.8 ? S Aug 13 00:02:26 BgpCliHelper\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1957 0.0 1.3 ? S Aug 13 00:04:07 ConnectedRoute\n 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput\n 1974 0.0 2.2 ? Sl Aug 13 00:11:51 Bgp\n 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2152 0.0 0.0 ? S 16:58:00 00:00:00 [kworker/0:1]\n 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n\n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager\n 2608 0.0 0.0 ? S 17:04:00 00:00:00 [kworker/0:2]\n 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console\n 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2736 0.0 1.2 ? S Aug 13 00:10:22 Ipsec\n 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3343 0.0 0.1 ? Ssl Aug 13 00:01:45 /usr/libexec/strongswan/charon --use-syslog\n 3417 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:0]\n 4492 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:3]\n 5082 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18369 0.0 1.3 ? Sl Aug 14 00:02:30 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18415 0.0 0.1 ? S Aug 14 00:02:07 nginx: worker process \n30271 0.0 0.0 ? S 16:45:04 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 131751, 'authorizationAllowed': 1278, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 0, 'authenticationUnavailable': 120, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 131755\n Failed: 0\n Service unavailable: 120\n\nAuthorization\n Allowed: 1278\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'131860': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600449473, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n131860 kgrozis command-api E 0:00:27 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 256, 'stratum': 4, 'maxEstimatedError': 9, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 9 ms\n polling server every 256 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.094, 'jitter': 0.186, 'lastReceived': 1600449344.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.407, 'peerIpAddr': '169.254.169.123', 'pollInterval': 256, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 159 256 377 0.094 0.407 0.186\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281524.130574, 'pid': 1714, 'enabled': True, 'uptime': 3167980.04, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1714)\nUptime: 36 days, 15:59:40 (Start time: Thu Aug 13 01:18:44 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 121853, 'bytesOut': 315591129, 'lastHitTime': 1600449507.1782453, 'bytesIn': 19627920}}, 'bytesOut': 315591129, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 128879, 'vrf': 'default', 'lastHitTime': 1600449507.1782107, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 9959.912822056242, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 121853, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.13.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.4:443', 'Loopback10 : https://198.18.0.38:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 19627920, 'commandCount': 243706, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 128884\nLast hit: 0 seconds ago\nBytes in: 19628680\nBytes out: 315604600\nRequests: 121858\nCommands: 243716\nDuration: 9960.148 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 121858 19628680 315604600 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.13.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.4:443 \nLoopback10 : https://198.18.0.38:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 16:14:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:14 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:45 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:20 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 16:14:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:14 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:45 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:20 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR2: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR2: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEosRR2] | Verify management api local httpserver is not running | 0.04 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEosRR2| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 128880 Last hit: 0 seconds ago Bytes in: 19628085 Bytes out: 315592137 Requests: 121854 Commands: 243708 Duration: 9959.926 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 121854 19628085 315592137 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest does not have output errors | 0.10 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:test_interface.py:305 TEST if interface |Ethernet1| counters has output errors on |kg-topology-CloudEosRR2| INFO root:test_interface.py:307 GIVEN interface output errors of |0| INFO root:test_interface.py:309 WHEN interface output errors is |{actual_output}| INFO root:test_interface.py:316 THEN test case result is |{test_result}| INFO root:test_interface.py:317 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEosRR2] | Verify hostname is set on device is correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show hostname| on kg-topology-CloudEosRR2 INFO root:test_host.py:72 TEST is hostname kg-topology-CloudEosRR2 correct INFO root:test_host.py:73 GIVEN hostname kg-topology-CloudEosRR2 INFO root:test_host.py:74 WHEN hostname is kg-topology-CloudEosRR2 INFO root:test_host.py:81 THEN test case result is |False| INFO root:test_host.py:82 OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEosRR2 FQDN: kg-topology-CloudEosRR2 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEosRR2] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| 1 second CPU load average is |1.15%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.15| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 17:18:17 up 36 days, 16:00, 0 users, load average: 1.15, 1.17, 1.17 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 37-12:46:35 Sfe 30290 1.6 0.7 ? SNl 16:45:05 00:00:32 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1714 0.4 1.9 ? Sl Aug 13 03:33:49 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 1255 0.1 0.9 ? S Aug 13 01:40:01 ProcMgr-worker 1566 0.1 7.3 ? Sl Aug 13 01:42:21 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:05:08 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:29 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:11:42 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:44 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:39:00 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr 1570 0.0 1.4 ? S Aug 13 00:01:53 Fru 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:09:58 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:03:53 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:04:37 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:18:23 Lag 1729 0.0 1.7 ? S Aug 13 00:37:10 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:04:01 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:03:07 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:08:06 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:28:15 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:42:15 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:10:01 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:03:42 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:20:57 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:05:09 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:22 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:16 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:34 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:04:53 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:03:44 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:02:52 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:21 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:07:03 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:40 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:40 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:03:50 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:21 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:08:35 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:26 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:04:07 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:11:51 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2152 0.0 0.0 ? S 16:58:00 00:00:00 [kworker/0:1] 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager 2608 0.0 0.0 ? S 17:04:00 00:00:00 [kworker/0:2] 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:10:22 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:45 /usr/libexec/strongswan/charon --use-syslog 3417 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:0] 4492 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:3] 5072 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:30 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:02:07 nginx: worker process 30271 0.0 0.0 ? S 16:45:04 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEosRR2] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| 1 minute CPU load average is |1.17%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.17| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 17:18:17 up 36 days, 16:00, 0 users, load average: 1.15, 1.17, 1.17 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 37-12:46:35 Sfe 30290 1.6 0.7 ? SNl 16:45:05 00:00:32 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1714 0.4 1.9 ? Sl Aug 13 03:33:49 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 1255 0.1 0.9 ? S Aug 13 01:40:01 ProcMgr-worker 1566 0.1 7.3 ? Sl Aug 13 01:42:21 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:05:08 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:29 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:11:42 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:44 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:39:00 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr 1570 0.0 1.4 ? S Aug 13 00:01:53 Fru 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:09:58 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:03:53 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:04:37 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:18:23 Lag 1729 0.0 1.7 ? S Aug 13 00:37:10 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:04:01 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:03:07 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:08:06 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:28:15 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:42:15 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:10:01 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:03:42 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:20:57 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:05:09 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:22 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:16 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:34 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:04:53 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:03:44 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:02:52 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:21 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:07:03 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:40 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:40 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:03:50 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:21 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:08:35 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:26 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:04:07 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:11:51 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2152 0.0 0.0 ? S 16:58:00 00:00:00 [kworker/0:1] 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager 2608 0.0 0.0 ? S 17:04:00 00:00:00 [kworker/0:2] 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:10:22 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:45 /usr/libexec/strongswan/charon --use-syslog 3417 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:0] 4492 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:3] 5072 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:30 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:02:07 nginx: worker process 30271 0.0 0.0 ? S 16:45:04 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no frameTooShorts errors | 0.11 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:test_interface.py:354 TEST if interface |Ethernet1| counters has frameTooShorts errors on |kg-topology-CloudEosRR2| INFO root:test_interface.py:356 GIVEN interface frameTooShorts errors of |0| INFO root:test_interface.py:358 WHEN interface frameTooShorts errors is |0| INFO root:test_interface.py:366 THEN test case result is |{test_result}| INFO root:test_interface.py:367 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest protocol statuses are up | 0.21 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:370 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR2 INFO root:test_interface.py:79 TEST if interface |Ethernet1| link prootocol statuses are up on |kg-topology-CloudEosRR2| INFO root:test_interface.py:81 GIVEN interface status is |up| INFO root:test_interface.py:85 WHEN interface status is |up| INFO root:test_interface.py:88 THEN test case result is |True| INFO root:test_interface.py:89 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 8 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'actual_output': 'up', 'test_result': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEosRR2] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| 5 minute CPU load average is |1.17%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.17| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 17:18:17 up 36 days, 16:00, 0 users, load average: 1.15, 1.17, 1.17 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 37-12:46:35 Sfe 30290 1.6 0.7 ? SNl 16:45:05 00:00:32 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1714 0.4 1.9 ? Sl Aug 13 03:33:49 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 1255 0.1 0.9 ? S Aug 13 01:40:01 ProcMgr-worker 1566 0.1 7.3 ? Sl Aug 13 01:42:21 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:05:08 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:29 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:11:42 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:44 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:39:00 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr 1570 0.0 1.4 ? S Aug 13 00:01:53 Fru 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:09:58 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:03:53 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:04:37 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:18:23 Lag 1729 0.0 1.7 ? S Aug 13 00:37:10 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:04:01 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:03:07 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:08:06 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:28:15 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:42:15 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:10:01 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:03:42 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:20:57 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:05:09 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:22 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:16 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:34 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:04:53 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:03:44 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:02:52 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:21 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:07:03 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:40 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:40 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:03:50 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:21 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:08:35 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:26 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:04:07 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:11:51 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2152 0.0 0.0 ? S 16:58:00 00:00:00 [kworker/0:1] 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager 2608 0.0 0.0 ? S 17:04:00 00:00:00 [kworker/0:2] 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:10:22 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:45 /usr/libexec/strongswan/charon --use-syslog 3417 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:0] 4492 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:3] 5072 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:30 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:02:07 nginx: worker process 30271 0.0 0.0 ? S 16:45:04 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no frameLongShorts errors | 0.12 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:test_interface.py:404 TEST if interface |Ethernet1| counters has frameTooLongs errors on |kg-topology-CloudEosRR2| INFO root:test_interface.py:406 GIVEN interface frameTooLongs errors of |0| INFO root:test_interface.py:408 WHEN interface frameTooLongs errors is |0| INFO root:test_interface.py:416 THEN test case result is |{test_result}| INFO root:test_interface.py:417 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 7 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest link statuses are up | 0.13 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:370 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR2 INFO root:test_interface.py:128 TEST if interface |Ethernet1| link status is up on |kg-topology-CloudEosRR2| INFO root:test_interface.py:130 GIVEN interface status is |connected| INFO root:test_interface.py:134 WHEN interface status is |connected| INFO root:test_interface.py:137 THEN test case result is |True| INFO root:test_interface.py:138 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'actual_output': 'connected', 'test_result': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEosRR2] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show daemon| on kg-topology-CloudEosRR2 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEosRR2| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1714) Uptime: 36 days, 15:59:40 (Start time: Thu Aug 13 01:18:44 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_fcs_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no fcsErrors errors | 0.19 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:test_interface.py:454 TEST if interface |Ethernet1| counters has fcsErrors errors on |kg-topology-CloudEosRR2| INFO root:test_interface.py:456 GIVEN interface fcsErrors errors of |0| INFO root:test_interface.py:458 WHEN interface fcsErrors errors is |0| INFO root:test_interface.py:466 THEN test case result is |{test_result}| INFO root:test_interface.py:467 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 3 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_fcs_errors_on_ with parameters {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest physical state is link up | 0.29 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEosRR2 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:370 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:417 Verify if kg-topology-CloudEosRR2 DUT is a VEOS instance INFO root:tests_tools.py:421 kg-topology-CloudEosRR2 is a VEOS instance so returning True INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_if_intf_phy_status_connected_on_ exists in results file at index 6 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'actual_output': None, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEosRR2] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEosRR2| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:370 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show daemon| on kg-topology-CloudEosRR2 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1714) Uptime: 36 days, 15:59:40 (Start time: Thu Aug 13 01:18:44 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_alignment_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no alignmentErrors errors | 0.14 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:test_interface.py:504 TEST if interface |Ethernet1| counters has alignmentErrors errors on |kg-topology-CloudEosRR2| INFO root:test_interface.py:506 GIVEN interface alignmentErrors errors of |0| INFO root:test_interface.py:508 WHEN interface alignmentErrors errors is |0| INFO root:test_interface.py:516 THEN test case result is |{test_result}| INFO root:test_interface.py:517 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_alignment_errors_on_ with parameters {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest does not have input errors | 0.19 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:test_interface.py:256 TEST if interface |Ethernet1| counters has input errors on |kg-topology-CloudEosRR2| INFO root:test_interface.py:258 GIVEN interface input errors of |0| INFO root:test_interface.py:260 WHEN interface input errors is |{actual_output}| INFO root:test_interface.py:267 THEN test case result is |{test_result}| INFO root:test_interface.py:268 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_symbol_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no alignmentErrors errors | 0.13 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:test_interface.py:554 TEST if interface |Ethernet1| counters has symbolErrors errors on |kg-topology-CloudEosRR2| INFO root:test_interface.py:556 GIVEN interface symbolErrors errors of |0| INFO root:test_interface.py:558 WHEN interface symbolErrors errors is |0| INFO root:test_interface.py:568 THEN test case result is |{test_result}| INFO root:test_interface.py:569 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_symbol_errors_on_ with parameters {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEosRR2] | Verify tacacs messages are sending correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show tacacs| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:394 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:400 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEosRR2| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEosRR2] | Verify tacacs messages are received correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show tacacs| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:394 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:400 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEosRR2| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_out_counters_are_discarding_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no outDiscards | 0.12 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - - On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEosRR2 INFO root:test_interface.py:619 TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| INFO root:test_interface.py:621 GIVEN interface outbound discards of |0| INFO root:test_interface.py:623 WHEN interface outbound discards are |0| INFO root:test_interface.py:632 THEN test case result is |{test_result}| INFO root:test_interface.py:633 OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 9 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_out_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEosRR2] | Verify username is set correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| |ec2-user| username is |configured| On router |kg-topology-CloudEosRR2| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show running-config section username| on kg-topology-CloudEosRR2 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEosRR2| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEosRR2| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEosRR2] | Verify DNS is running by performing pings and verifying name resolution | 1.26 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| DNS resolution |Passed| for google.com On router |kg-topology-CloudEosRR2| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEosRR2| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR2| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (172.217.4.46) 72(100) bytes of data. 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=1 ttl=101 (truncated) 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=101 (truncated) 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=101 (truncated) 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=4 ttl=101 (truncated) 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=5 ttl=101 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 61ms rtt min/avg/max/mdev = 16.834/16.850/16.867/0.116 ms, pipe 2, ipg/ewma 15.266/16.853 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR2| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.193.67) 72(100) bytes of data. 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=1 ttl=39 time=10.6 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=2 ttl=39 time=10.6 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=3 ttl=39 time=10.6 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=4 ttl=39 time=10.6 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=5 ttl=39 time=10.6 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 105ms rtt min/avg/max/mdev = 10.673/10.685/10.699/0.066 ms, pipe 2, ipg/ewma 26.470/10.691 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR2| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=39 time=23.0 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=39 time=23.0 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=39 time=22.9 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=39 time=22.9 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=39 time=22.9 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 66ms rtt min/avg/max/mdev = 22.954/22.991/23.021/0.193 ms, pipe 3, ipg/ewma 16.531/23.006 ms | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_in_counters_are_discarding_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no inDiscards | 0.18 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|. GIVEN interface outbound discards of |0|. WHEN interface outbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 5 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_in_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'fail_reason': '', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2'} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEosRR2] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show zerotouch| on kg-topology-CloudEosRR2 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEosRR2| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEOSEdge1] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| 1 minute CPU load average is |1.19%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.19| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 17:18:17 up 36 days, 16:00, 0 users, load average: 1.39, 1.23, 1.22 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 37-12:11:52 Sfe 17533 2.7 0.6 ? SNl 17:15:06 00:00:05 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1725 0.4 2.3 ? Sl Aug 13 04:03:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 01:52:34 ConfigAgent 1233 0.1 0.9 ? S Aug 13 01:40:40 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:35:49 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:05:04 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:29 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:03:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:01:04 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:12:10 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:51:14 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru 1585 0.0 1.8 ? S Aug 13 00:01:15 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:09:08 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:03:59 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:02:45 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:05:17 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:18:47 Lag 1754 0.0 1.7 ? S Aug 13 00:36:25 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:35 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:03:43 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:08:50 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:30:09 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:43:43 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:09:56 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:33 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:25 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:25:30 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:05:53 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:18 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:04:09 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:04:04 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:05:44 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:31 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:28 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:09 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:07:08 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:04:38 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:01:57 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:09:43 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:25 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:30 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:02:01 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:18:19 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:09:55 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:07:55 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:04:04 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:28 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 15229 0.0 0.0 ? S 16:58:01 00:00:00 [kworker/0:1] 15663 0.0 0.0 ? S 17:04:01 00:00:00 [kworker/0:3] 17136 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0] 17513 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 17531 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:2] 18108 0.0 0.0 ? Rs 17:18:17 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:02:00 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:01:55 nginx: worker process 30730 0.0 0.4 ? Sl Aug 17 00:15:29 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:12:45 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEosRR2] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEosRR2 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEosRR2| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7293399040 bytes free) | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEOSEdge1] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEOSEdge1] | Verify 5 minute CPU % is under specificied value | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| 5 minute CPU load average is |1.2%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.2| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 17:18:17 up 36 days, 16:00, 0 users, load average: 1.39, 1.23, 1.22 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 37-12:11:52 Sfe 17533 2.7 0.6 ? SNl 17:15:06 00:00:05 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1725 0.4 2.3 ? Sl Aug 13 04:03:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 01:52:34 ConfigAgent 1233 0.1 0.9 ? S Aug 13 01:40:40 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:35:49 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:05:04 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:29 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:03:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:01:04 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:12:10 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:51:14 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru 1585 0.0 1.8 ? S Aug 13 00:01:15 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:09:08 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:03:59 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:02:45 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:05:17 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:18:47 Lag 1754 0.0 1.7 ? S Aug 13 00:36:25 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:35 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:03:43 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:08:50 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:30:09 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:43:43 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:09:56 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:33 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:25 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:25:30 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:05:53 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:18 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:04:09 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:04:04 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:05:44 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:31 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:28 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:09 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:07:08 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:04:38 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:01:57 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:09:43 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:25 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:30 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:02:01 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:18:19 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:09:55 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:07:55 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:04:04 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:28 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 15229 0.0 0.0 ? S 16:58:01 00:00:00 [kworker/0:1] 15663 0.0 0.0 ? S 17:04:01 00:00:00 [kworker/0:3] 17136 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0] 17513 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 17531 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:2] 18108 0.0 0.0 ? Rs 17:18:17 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:02:00 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:01:55 nginx: worker process 30730 0.0 0.4 ? Sl Aug 17 00:15:29 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:12:45 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEOSEdge1] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show users detail| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEOSEdge1| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 125754 kgrozis command-api E 0:00:26 local | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEosRR2] | Verify local log messages | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| message |critical| NOT found in local log On router |kg-topology-CloudEosRR2| message |warning| NOT found in local log On router |kg-topology-CloudEosRR2| message |ECC| NOT found in local log On router |kg-topology-CloudEosRR2| message |servers errors| NOT found in local log On router |kg-topology-CloudEosRR2| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show logging| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show logging| on kg-topology-CloudEosRR2 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 16:14:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:14 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:33:45 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:20 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 16:14:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:14 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:33:45 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:20 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 16:14:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:14 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:33:45 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:20 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 16:14:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:14 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:33:45 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:20 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 16:14:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:14 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:04 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:13 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:33:45 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:21 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:25 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:55 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:05 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:50 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:54 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:20 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:29 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEOSEdge1] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge1 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEOSEdge1| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1725) Uptime: 36 days, 15:59:48 (Start time: Thu Aug 13 01:18:37 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEOSEdge1] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEOSEdge1| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:370 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge1 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1725) Uptime: 36 days, 15:59:48 (Start time: Thu Aug 13 01:18:37 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEosRR2] | Verify memory is not exceeding high utlization | 0.16 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |dut_name| memory utilization percent is |38.41961155869696%| and should be under 70% -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show version| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show version| on kg-topology-CloudEosRR2 INFO root:test_memory.py:71 TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_memory.py:73 GIVEN memory utilization is less than |70%| INFO root:test_memory.py:80 WHEN memory utilization is |38.41961155869696| INFO root:test_memory.py:83 THEN test case result is |True%| INFO root:test_memory.py:84 OUTPUT of |show version| is : Arista vEOS Hardware version: Serial number: 93F97AD3A1044C742872BA1CFA684D63 System MAC address: 0654.9b7c.b00f Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 5 weeks, 1 days, 16 hours and 0 minutes Total memory: 7818736 kB Free memory: 3003932 kB INFO root:tests_tools.py:502 Find the Index for test suite: test_memory.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_memory.py exists in results file at index 1 INFO root:tests_tools.py:517 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 Test case test_memory_utilization_on_ exists in results file at index 0 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEosRR2 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True, 'actual_output': 38.41961155869696, 'test_result': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEosRR2] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show ntp status| on kg-topology-CloudEosRR2 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEosRR2| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 9 ms polling server every 256 s | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEOSEdge1] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 120454 Last hit: 0 seconds ago Bytes in: 18354065 Bytes out: 323724963 Requests: 113930 Commands: 227860 Duration: 9829.787 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 113930 18354065 323724963 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEosRR2] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show ntp associations| on kg-topology-CloudEosRR2 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEosRR2| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 158 256 377 0.094 0.407 0.186 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEOSEdge1] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 120454 Last hit: 0 seconds ago Bytes in: 18354065 Bytes out: 323724963 Requests: 113930 Commands: 227860 Duration: 9829.787 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 113930 18354065 323724963 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEosRR2] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEosRR2| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 17:18:16 up 36 days, 16:00, 0 users, load average: 1.15, 1.17, 1.17 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 37-12:46:35 Sfe 30290 1.6 0.7 ? SNl 16:45:05 00:00:32 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1714 0.4 1.9 ? Sl Aug 13 03:33:49 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 1255 0.1 0.9 ? S Aug 13 01:40:01 ProcMgr-worker 1566 0.1 7.3 ? Sl Aug 13 01:42:21 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:05:08 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:29 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:11:42 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:44 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:39:00 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr 1570 0.0 1.4 ? S Aug 13 00:01:53 Fru 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:09:58 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:03:53 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:04:37 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:18:23 Lag 1729 0.0 1.7 ? S Aug 13 00:37:10 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:04:01 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:03:07 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:08:06 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:28:15 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:42:15 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:10:01 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:03:42 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:20:57 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:05:09 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:22 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:16 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:34 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:04:53 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:03:44 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:02:52 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:21 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:07:03 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:40 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:40 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:03:50 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:21 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:08:35 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:26 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:04:07 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:11:51 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2152 0.0 0.0 ? S 16:58:00 00:00:00 [kworker/0:1] 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager 2608 0.0 0.0 ? S 17:04:00 00:00:00 [kworker/0:2] 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:10:22 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:45 /usr/libexec/strongswan/charon --use-syslog 3417 0.0 0.0 ? S 17:09:00 00:00:00 [kworker/0:0] 4492 0.0 0.0 ? S 17:15:01 00:00:00 [kworker/0:3] 5066 0.0 0.0 ? Rs 17:18:15 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:30 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:02:07 nginx: worker process 30271 0.0 0.0 ? S 16:45:04 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEOSEdge1] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 120454 Last hit: 0 seconds ago Bytes in: 18354065 Bytes out: 323724963 Requests: 113930 Commands: 227860 Duration: 9829.787 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 113930 18354065 323724963 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEOSEdge1] | Verify DNS is running by performing pings and verifying name resolution | 1.25 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| DNS resolution |Passed| for google.com On router |kg-topology-CloudEOSEdge1| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEOSEdge1| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge1| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (172.217.4.46) 72(100) bytes of data. 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=1 ttl=100 (truncated) 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=100 (truncated) 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=100 (truncated) 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=4 ttl=100 (truncated) 76 bytes from ord38s18-in-f14.1e100.net (172.217.4.46): icmp_seq=5 ttl=100 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 61ms rtt min/avg/max/mdev = 17.106/17.184/17.281/0.065 ms, pipe 2, ipg/ewma 15.412/17.228 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge1| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.129.67) 72(100) bytes of data. 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=1 ttl=39 time=11.5 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=2 ttl=39 time=11.2 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=3 ttl=39 time=11.2 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=4 ttl=39 time=11.3 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=5 ttl=39 time=11.3 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 75ms rtt min/avg/max/mdev = 11.292/11.359/11.580/0.174 ms, pipe 2, ipg/ewma 18.969/11.466 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge1| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=39 time=23.5 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=39 time=23.3 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=39 time=23.3 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=39 time=23.3 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=39 time=23.3 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 66ms rtt min/avg/max/mdev = 23.320/23.385/23.519/0.181 ms, pipe 3, ipg/ewma 16.680/23.450 ms | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEOSEdge1] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 120454 Last hit: 0 seconds ago Bytes in: 18354065 Bytes out: 323724963 Requests: 113930 Commands: 227860 Duration: 9829.787 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 113930 18354065 323724963 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no frameLongShorts errors | 0.29 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| frameTooLongs, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:404 TEST if interface |Ethernet1| counters has frameTooLongs errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:406 GIVEN interface frameTooLongs errors of |0| INFO root:test_interface.py:408 WHEN interface frameTooLongs errors is |0| INFO root:test_interface.py:416 THEN test case result is |{test_result}| INFO root:test_interface.py:417 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 7 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:test_interface.py:404 TEST if interface |Ethernet2| counters has frameTooLongs errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:406 GIVEN interface frameTooLongs errors of |0| INFO root:test_interface.py:408 WHEN interface frameTooLongs errors is |0| INFO root:test_interface.py:416 THEN test case result is |{test_result}| INFO root:test_interface.py:417 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 7 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEOSEdge1] | Verify a list of extension are installed on a DUT | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| awslogs.swix extension is |installed| On router |kg-topology-CloudEOSEdge1| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge1 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEOSEdge1] | Verify management api local httpserver is not running | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 120454 Last hit: 0 seconds ago Bytes in: 18354065 Bytes out: 323724963 Requests: 113930 Commands: 227860 Duration: 9829.787 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 113930 18354065 323724963 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEOSEdge1] | Verify filesystem is correct and expected files are present | 0.93 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEOSEdge1|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEOSEdge1|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEOSEdge1| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-CloudEOSEdge1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281918.5968575, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281695.7245514, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.1', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281540.2018192, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:9e:d2:0a:bb:fc', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.639592, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:0a:bb:fc', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281538.186288, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:3d:76:50:e3:16', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 40422.25444488301, 'inPktsRate': 34.61607017579823, 'outBitsRate': 27391.720255760752, 'updateInterval': 300.0, 'outPktsRate': 32.21094949622352}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 142184862, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.640664, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 29266511349, 'outDiscards': 0, 'outOctets': 16792414821, 'inUcastPkts': 160820349, 'inTotalPkts': 160820349, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281918.590165, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281538.2396886, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:9e:d2:88:21:f6', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 34959.45032936842, 'inPktsRate': 34.95345104339005, 'outBitsRate': 73447.97479573614, 'updateInterval': 300.0, 'outPktsRate': 39.92171892168036}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 169440408, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.641787, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 16703988368, 'outDiscards': 0, 'outOctets': 36196114058, 'inUcastPkts': 142372590, 'inTotalPkts': 142372590, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:88:21:f6', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281693.6663578, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281523.1778927, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.35'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 13 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 30 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge1', 'hostname': 'kg-topology-CloudEOSEdge1'}, 'text': 'Hostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3168041.26, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DB3968957436BF7623C810C9F13FC97E', 'systemMacAddress': '02:9e:d2:0a:bb:fc', 'bootupTimestamp': 1597281454.0, 'memFree': 2843440, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 16 hours and 0 minutes\nTotal memory: 7818736 kB\nFree memory: 2843440 kB\n\n'}, 'show processes': {'json': {'processes': {'1928': {'totalActiveTime': 3240711, 'memPct': 3.7, 'cpuPct': 102.0, 'startTime': 1597281524.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '17533': {'totalActiveTime': 5, 'memPct': 0.6, 'cpuPct': 2.7, 'startTime': 1600449306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1725': {'totalActiveTime': 14627, 'memPct': 2.3, 'cpuPct': 0.4, 'startTime': 1597281516.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1582': {'totalActiveTime': 6754, 'memPct': 8.6, 'cpuPct': 0.2, 'startTime': 1597281495.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1233': {'totalActiveTime': 6040, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '3405': {'totalActiveTime': 5749, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281695.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 304, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 29, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 49, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 90, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281455.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '380': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '407': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '499': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '747': {'totalActiveTime': 185, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '782': {'totalActiveTime': 64, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '789': {'totalActiveTime': 87, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '807': {'totalActiveTime': 16, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '819': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '824': {'totalActiveTime': 5, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '1005': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1007': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1017': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1018': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1034': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1038': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1039': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1179': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1180': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1213': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1216': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1218': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1232': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1478': {'totalActiveTime': 730, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1486': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1501': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1538': {'totalActiveTime': 158, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1539': {'totalActiveTime': 3074, 'memPct': 2.6, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1581': {'totalActiveTime': 46, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1584': {'totalActiveTime': 141, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1585': {'totalActiveTime': 75, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 548, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 239, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1726': {'totalActiveTime': 165, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1745': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1746': {'totalActiveTime': 317, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 1127, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 2185, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1768': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1769': {'totalActiveTime': 275, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1772': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 223, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1775': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1777': {'totalActiveTime': 530, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1779': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 1809, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1781': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1783': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1784': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1787': {'totalActiveTime': 2623, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1789': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1790': {'totalActiveTime': 596, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1791': {'totalActiveTime': 93, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1794': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1795': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1796': {'totalActiveTime': 265, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1797': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1798': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 1530, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1800': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1802': {'totalActiveTime': 353, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1804': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 138, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1807': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1809': {'totalActiveTime': 249, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1815': {'totalActiveTime': 244, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1817': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1818': {'totalActiveTime': 344, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1821': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 271, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1824': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1826': {'totalActiveTime': 208, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1828': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1831': {'totalActiveTime': 129, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1839': {'totalActiveTime': 71, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1841': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1842': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1844': {'totalActiveTime': 152, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1847': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1853': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1854': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1859': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 428, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1881': {'totalActiveTime': 278, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 117, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1906': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1907': {'totalActiveTime': 583, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1910': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1911': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1912': {'totalActiveTime': 145, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1915': {'totalActiveTime': 270, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1916': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1919': {'totalActiveTime': 121, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 1099, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '1922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '1926': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2295': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2356': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2360': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2363': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2617': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2631': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2634': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2637': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2660': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2662': {'totalActiveTime': 595, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2671': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2699': {'totalActiveTime': 62, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3289': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3290': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3295': {'totalActiveTime': 475, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3297': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3301': {'totalActiveTime': 244, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3304': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3307': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3308': {'totalActiveTime': 268, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3365': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3367': {'totalActiveTime': 68, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3403': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3404': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3929': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281918.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '4048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281919.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '8818': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599873559.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '15229': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448281.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '15663': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448641.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '17136': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449001.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '17513': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '17531': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449305.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '18082': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449495.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '18981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18982': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18983': {'totalActiveTime': 120, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '19027': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '19029': {'totalActiveTime': 115, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30730': {'totalActiveTime': 929, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597697371.0, 'cmd': 'dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay', 'state': 'Sl', 'ttyName': '?'}, '30750': {'totalActiveTime': 765, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597697372.0, 'cmd': 'docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc', 'state': 'Ssl', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3168042.03, 'loadAvg': [1.16, 1.19, 1.2], 'users': 0, 'currentTime': 1600449496.324146}}, 'text': " 17:18:17 up 36 days, 16:00, 0 users, load average: 1.39, 1.23, 1.22\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 1928 102 3.7 ? Sl Aug 13 37-12:11:52 Sfe\n17533 2.7 0.6 ? SNl 17:15:06 00:00:05 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1725 0.4 2.3 ? Sl Aug 13 04:03:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1582 0.2 8.6 ? Sl Aug 13 01:52:34 ConfigAgent\n 1233 0.1 0.9 ? S Aug 13 01:40:40 ProcMgr-worker\n 3405 0.1 1.4 ? S Aug 13 01:35:49 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:05:04 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:29 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 747 0.0 0.1 ? Ss Aug 13 00:03:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 782 0.0 0.0 ? Ss Aug 13 00:01:04 /usr/bin/ProcMonitor\n 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind\n 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n\n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60\n 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1478 0.0 0.0 ? S Aug 13 00:12:10 /usr/bin/EosOomAdjust\n 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu]\n 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor\n 1539 0.0 2.6 ? S Aug 13 00:51:14 Sysdb\n 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr\n 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru\n 1585 0.0 1.8 ? S Aug 13 00:01:15 Launcher\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1718 0.0 1.2 ? S Aug 13 00:09:08 Lldp\n 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1720 0.0 1.2 ? S Aug 13 00:03:59 McastCommon\n 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1726 0.0 1.1 ? S Aug 13 00:02:45 PortSec\n 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1746 0.0 1.4 ? S Aug 13 00:05:17 Bfd\n 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.3 ? S Aug 13 00:18:47 Lag\n 1754 0.0 1.7 ? S Aug 13 00:36:25 SuperServer\n 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1769 0.0 1.5 ? S Aug 13 00:04:35 Ira\n 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.2 ? S Aug 13 00:03:43 LedPolicy\n 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1777 0.0 1.3 ? S Aug 13 00:08:50 EventMgr\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.2 ? S Aug 13 00:30:09 StpTxRx\n 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1787 0.0 1.0 ? S Aug 13 00:43:43 AgentMonitor\n 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1790 0.0 1.6 ? Sl Aug 13 00:09:56 Aaa\n 1791 0.0 1.2 ? S Aug 13 00:01:33 Tunnel\n 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1796 0.0 1.2 ? S Aug 13 00:04:25 StpTopology\n 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1799 0.0 1.4 ? S Aug 13 00:25:30 Acl\n 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1802 0.0 1.1 ? S Aug 13 00:05:53 Stp\n 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.1 ? S Aug 13 00:02:18 KernelNetworkInfo\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1809 0.0 1.2 ? S Aug 13 00:04:09 McastCommon6\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1815 0.0 1.2 ? S Aug 13 00:04:04 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1818 0.0 1.5 ? S Aug 13 00:05:44 Arp\n 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.4 ? S Aug 13 00:04:31 KernelFib\n 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1826 0.0 1.2 ? S Aug 13 00:03:28 Qos\n 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1831 0.0 1.1 ? S Aug 13 00:02:09 Thermostat\n 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib\n 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager\n 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1860 0.0 1.4 ? S Aug 13 00:07:08 Ebra\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1881 0.0 1.5 ? S Aug 13 00:04:38 IgmpSnooping\n 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.3 ? S Aug 13 00:01:57 StaticRoute\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1907 0.0 1.7 ? S Aug 13 00:09:43 IpRib\n 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1912 0.0 1.9 ? S Aug 13 00:02:25 BgpCliHelper\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1915 0.0 1.3 ? S Aug 13 00:04:30 ConnectedRoute\n 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1919 0.0 1.3 ? S Aug 13 00:02:01 RouteInput\n 1920 0.0 2.3 ? Sl Aug 13 00:18:19 Bgp\n 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n\n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager\n 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console\n 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2662 0.0 1.2 ? S Aug 13 00:09:55 Ipsec\n 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3295 0.0 1.2 ? S Aug 13 00:07:55 Nat\n 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3301 0.0 1.3 ? S Aug 13 00:04:04 Vxlan\n 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3308 0.0 1.3 ? S Aug 13 00:04:28 VxlanSwFwd\n 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog\n 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1]\n15229 0.0 0.0 ? S 16:58:01 00:00:00 [kworker/0:1]\n15663 0.0 0.0 ? S 17:04:01 00:00:00 [kworker/0:3]\n17136 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0]\n17513 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n17531 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:2]\n18100 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18983 0.0 1.3 ? Sl Aug 26 00:02:00 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n19029 0.0 0.1 ? S Aug 26 00:01:55 nginx: worker process \n30730 0.0 0.4 ? Sl Aug 17 00:15:29 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay\n30750 0.0 0.1 ? Ssl Aug 17 00:12:45 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 123932, 'authorizationAllowed': 2801, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 7, 'authenticationUnavailable': 389, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 123935\n Failed: 7\n Service unavailable: 389\n\nAuthorization\n Allowed: 2801\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'125754': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600449473, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n125754 kgrozis command-api E 0:00:26 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 34, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 34 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.119, 'jitter': 0.056, 'lastReceived': 1600449329.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.151, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 174 1024 377 0.119 -0.151 0.056\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281517.198929, 'pid': 1725, 'enabled': True, 'uptime': 3167986.88, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1725)\nUptime: 36 days, 15:59:47 (Start time: Thu Aug 13 01:18:37 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291195392 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291195392 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 113921, 'bytesOut': 323719379, 'lastHitTime': 1600449507.1987827, 'bytesIn': 18352606}}, 'bytesOut': 323719379, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 120445, 'vrf': 'default', 'lastHitTime': 1600449507.198742, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 9829.635390120908, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 113921, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.14.101:443', 'Ethernet2 : https://11.201.14.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.1:443', 'Loopback10 : https://198.18.0.35:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 18352606, 'commandCount': 227842, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 120450\nLast hit: 0 seconds ago\nBytes in: 18353429\nBytes out: 323722208\nRequests: 113926\nCommands: 227852\nDuration: 9829.710 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 113926 18353429 323722208 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.14.101:443 \nEthernet2 : https://11.201.14.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.1:443 \nLoopback10 : https://198.18.0.35:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:35:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:11 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:00 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:08 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:35:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:11 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:00 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:08 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge1: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge1: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEOSEdge1| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-CloudEOSEdge1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281918.5968575, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281695.7245514, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.1', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281540.2018192, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:9e:d2:0a:bb:fc', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.639592, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:0a:bb:fc', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281538.186288, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:3d:76:50:e3:16', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 40422.25444488301, 'inPktsRate': 34.61607017579823, 'outBitsRate': 27391.720255760752, 'updateInterval': 300.0, 'outPktsRate': 32.21094949622352}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 142184862, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.640664, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 29266511349, 'outDiscards': 0, 'outOctets': 16792414821, 'inUcastPkts': 160820349, 'inTotalPkts': 160820349, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281918.590165, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281538.2396886, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:9e:d2:88:21:f6', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 34959.45032936842, 'inPktsRate': 34.95345104339005, 'outBitsRate': 73447.97479573614, 'updateInterval': 300.0, 'outPktsRate': 39.92171892168036}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 169440408, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.641787, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 16703988368, 'outDiscards': 0, 'outOctets': 36196114058, 'inUcastPkts': 142372590, 'inTotalPkts': 142372590, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:88:21:f6', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281693.6663578, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281523.1778927, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.35'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 13 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 30 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge1', 'hostname': 'kg-topology-CloudEOSEdge1'}, 'text': 'Hostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3168041.26, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DB3968957436BF7623C810C9F13FC97E', 'systemMacAddress': '02:9e:d2:0a:bb:fc', 'bootupTimestamp': 1597281454.0, 'memFree': 2843440, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 16 hours and 0 minutes\nTotal memory: 7818736 kB\nFree memory: 2843440 kB\n\n'}, 'show processes': {'json': {'processes': {'1928': {'totalActiveTime': 3240711, 'memPct': 3.7, 'cpuPct': 102.0, 'startTime': 1597281524.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '17533': {'totalActiveTime': 5, 'memPct': 0.6, 'cpuPct': 2.7, 'startTime': 1600449306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1725': {'totalActiveTime': 14627, 'memPct': 2.3, 'cpuPct': 0.4, 'startTime': 1597281516.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1582': {'totalActiveTime': 6754, 'memPct': 8.6, 'cpuPct': 0.2, 'startTime': 1597281495.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1233': {'totalActiveTime': 6040, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '3405': {'totalActiveTime': 5749, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281695.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 304, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 29, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 49, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 90, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281455.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '380': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '407': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '499': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '747': {'totalActiveTime': 185, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '782': {'totalActiveTime': 64, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '789': {'totalActiveTime': 87, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '807': {'totalActiveTime': 16, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '819': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '824': {'totalActiveTime': 5, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '1005': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1007': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1017': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1018': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1034': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1038': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1039': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1179': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1180': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1213': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1216': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1218': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1232': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1478': {'totalActiveTime': 730, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1486': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1501': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1538': {'totalActiveTime': 158, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1539': {'totalActiveTime': 3074, 'memPct': 2.6, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1581': {'totalActiveTime': 46, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1584': {'totalActiveTime': 141, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1585': {'totalActiveTime': 75, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 548, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 239, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1726': {'totalActiveTime': 165, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1745': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1746': {'totalActiveTime': 317, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 1127, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 2185, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1768': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1769': {'totalActiveTime': 275, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1772': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 223, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1775': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1777': {'totalActiveTime': 530, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1779': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 1809, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1781': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1783': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1784': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1787': {'totalActiveTime': 2623, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1789': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1790': {'totalActiveTime': 596, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1791': {'totalActiveTime': 93, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1794': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1795': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1796': {'totalActiveTime': 265, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1797': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1798': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 1530, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1800': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1802': {'totalActiveTime': 353, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1804': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 138, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1807': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1809': {'totalActiveTime': 249, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1815': {'totalActiveTime': 244, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1817': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1818': {'totalActiveTime': 344, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1821': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 271, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1824': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1826': {'totalActiveTime': 208, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1828': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1831': {'totalActiveTime': 129, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1839': {'totalActiveTime': 71, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1841': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1842': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1844': {'totalActiveTime': 152, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1847': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1853': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1854': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1859': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 428, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1881': {'totalActiveTime': 278, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 117, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1906': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1907': {'totalActiveTime': 583, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1910': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1911': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1912': {'totalActiveTime': 145, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1915': {'totalActiveTime': 270, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1916': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1919': {'totalActiveTime': 121, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 1099, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '1922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '1926': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2295': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2356': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2360': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2363': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2617': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2631': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2634': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2637': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2660': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2662': {'totalActiveTime': 595, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2671': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2699': {'totalActiveTime': 62, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3289': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3290': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3295': {'totalActiveTime': 475, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3297': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3301': {'totalActiveTime': 244, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3304': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3307': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3308': {'totalActiveTime': 268, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3365': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3367': {'totalActiveTime': 68, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3403': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3404': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3929': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281918.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '4048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281919.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '8818': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599873559.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '15229': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448281.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '15663': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448641.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '17136': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449001.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '17513': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '17531': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449305.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '18082': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449495.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '18981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18982': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18983': {'totalActiveTime': 120, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '19027': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '19029': {'totalActiveTime': 115, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30730': {'totalActiveTime': 929, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597697371.0, 'cmd': 'dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay', 'state': 'Sl', 'ttyName': '?'}, '30750': {'totalActiveTime': 765, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597697372.0, 'cmd': 'docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc', 'state': 'Ssl', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3168042.03, 'loadAvg': [1.16, 1.19, 1.2], 'users': 0, 'currentTime': 1600449496.324146}}, 'text': " 17:18:17 up 36 days, 16:00, 0 users, load average: 1.39, 1.23, 1.22\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 1928 102 3.7 ? Sl Aug 13 37-12:11:52 Sfe\n17533 2.7 0.6 ? SNl 17:15:06 00:00:05 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1725 0.4 2.3 ? Sl Aug 13 04:03:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1582 0.2 8.6 ? Sl Aug 13 01:52:34 ConfigAgent\n 1233 0.1 0.9 ? S Aug 13 01:40:40 ProcMgr-worker\n 3405 0.1 1.4 ? S Aug 13 01:35:49 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:05:04 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:29 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 747 0.0 0.1 ? Ss Aug 13 00:03:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 782 0.0 0.0 ? Ss Aug 13 00:01:04 /usr/bin/ProcMonitor\n 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind\n 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n\n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60\n 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1478 0.0 0.0 ? S Aug 13 00:12:10 /usr/bin/EosOomAdjust\n 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu]\n 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor\n 1539 0.0 2.6 ? S Aug 13 00:51:14 Sysdb\n 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr\n 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru\n 1585 0.0 1.8 ? S Aug 13 00:01:15 Launcher\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1718 0.0 1.2 ? S Aug 13 00:09:08 Lldp\n 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1720 0.0 1.2 ? S Aug 13 00:03:59 McastCommon\n 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1726 0.0 1.1 ? S Aug 13 00:02:45 PortSec\n 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1746 0.0 1.4 ? S Aug 13 00:05:17 Bfd\n 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.3 ? S Aug 13 00:18:47 Lag\n 1754 0.0 1.7 ? S Aug 13 00:36:25 SuperServer\n 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1769 0.0 1.5 ? S Aug 13 00:04:35 Ira\n 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.2 ? S Aug 13 00:03:43 LedPolicy\n 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1777 0.0 1.3 ? S Aug 13 00:08:50 EventMgr\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.2 ? S Aug 13 00:30:09 StpTxRx\n 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1787 0.0 1.0 ? S Aug 13 00:43:43 AgentMonitor\n 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1790 0.0 1.6 ? Sl Aug 13 00:09:56 Aaa\n 1791 0.0 1.2 ? S Aug 13 00:01:33 Tunnel\n 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1796 0.0 1.2 ? S Aug 13 00:04:25 StpTopology\n 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1799 0.0 1.4 ? S Aug 13 00:25:30 Acl\n 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1802 0.0 1.1 ? S Aug 13 00:05:53 Stp\n 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.1 ? S Aug 13 00:02:18 KernelNetworkInfo\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1809 0.0 1.2 ? S Aug 13 00:04:09 McastCommon6\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1815 0.0 1.2 ? S Aug 13 00:04:04 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1818 0.0 1.5 ? S Aug 13 00:05:44 Arp\n 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.4 ? S Aug 13 00:04:31 KernelFib\n 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1826 0.0 1.2 ? S Aug 13 00:03:28 Qos\n 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1831 0.0 1.1 ? S Aug 13 00:02:09 Thermostat\n 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib\n 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager\n 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1860 0.0 1.4 ? S Aug 13 00:07:08 Ebra\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1881 0.0 1.5 ? S Aug 13 00:04:38 IgmpSnooping\n 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.3 ? S Aug 13 00:01:57 StaticRoute\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1907 0.0 1.7 ? S Aug 13 00:09:43 IpRib\n 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1912 0.0 1.9 ? S Aug 13 00:02:25 BgpCliHelper\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1915 0.0 1.3 ? S Aug 13 00:04:30 ConnectedRoute\n 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1919 0.0 1.3 ? S Aug 13 00:02:01 RouteInput\n 1920 0.0 2.3 ? Sl Aug 13 00:18:19 Bgp\n 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n\n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager\n 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console\n 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2662 0.0 1.2 ? S Aug 13 00:09:55 Ipsec\n 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3295 0.0 1.2 ? S Aug 13 00:07:55 Nat\n 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3301 0.0 1.3 ? S Aug 13 00:04:04 Vxlan\n 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3308 0.0 1.3 ? S Aug 13 00:04:28 VxlanSwFwd\n 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog\n 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1]\n15229 0.0 0.0 ? S 16:58:01 00:00:00 [kworker/0:1]\n15663 0.0 0.0 ? S 17:04:01 00:00:00 [kworker/0:3]\n17136 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0]\n17513 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n17531 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:2]\n18100 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18983 0.0 1.3 ? Sl Aug 26 00:02:00 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n19029 0.0 0.1 ? S Aug 26 00:01:55 nginx: worker process \n30730 0.0 0.4 ? Sl Aug 17 00:15:29 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay\n30750 0.0 0.1 ? Ssl Aug 17 00:12:45 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 123932, 'authorizationAllowed': 2801, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 7, 'authenticationUnavailable': 389, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 123935\n Failed: 7\n Service unavailable: 389\n\nAuthorization\n Allowed: 2801\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'125754': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600449473, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n125754 kgrozis command-api E 0:00:26 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 34, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 34 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.119, 'jitter': 0.056, 'lastReceived': 1600449329.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.151, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 174 1024 377 0.119 -0.151 0.056\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281517.198929, 'pid': 1725, 'enabled': True, 'uptime': 3167986.88, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1725)\nUptime: 36 days, 15:59:47 (Start time: Thu Aug 13 01:18:37 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291195392 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291195392 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 113921, 'bytesOut': 323719379, 'lastHitTime': 1600449507.1987827, 'bytesIn': 18352606}}, 'bytesOut': 323719379, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 120445, 'vrf': 'default', 'lastHitTime': 1600449507.198742, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 9829.635390120908, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 113921, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.14.101:443', 'Ethernet2 : https://11.201.14.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.1:443', 'Loopback10 : https://198.18.0.35:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 18352606, 'commandCount': 227842, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 120450\nLast hit: 0 seconds ago\nBytes in: 18353429\nBytes out: 323722208\nRequests: 113926\nCommands: 227852\nDuration: 9829.710 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 113926 18353429 323722208 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.14.101:443 \nEthernet2 : https://11.201.14.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.1:443 \nLoopback10 : https://198.18.0.35:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:35:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:11 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:00 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:08 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:35:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:11 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:00 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:08 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge1: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge1: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEOSEdge1| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-CloudEOSEdge1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281918.5968575, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281695.7245514, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.1', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281540.2018192, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:9e:d2:0a:bb:fc', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.639592, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:0a:bb:fc', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281538.186288, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:3d:76:50:e3:16', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 40422.25444488301, 'inPktsRate': 34.61607017579823, 'outBitsRate': 27391.720255760752, 'updateInterval': 300.0, 'outPktsRate': 32.21094949622352}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 142184862, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.640664, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 29266511349, 'outDiscards': 0, 'outOctets': 16792414821, 'inUcastPkts': 160820349, 'inTotalPkts': 160820349, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281918.590165, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281538.2396886, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:9e:d2:88:21:f6', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 34959.45032936842, 'inPktsRate': 34.95345104339005, 'outBitsRate': 73447.97479573614, 'updateInterval': 300.0, 'outPktsRate': 39.92171892168036}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 169440408, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.641787, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 16703988368, 'outDiscards': 0, 'outOctets': 36196114058, 'inUcastPkts': 142372590, 'inTotalPkts': 142372590, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:88:21:f6', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281693.6663578, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281523.1778927, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.35'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 13 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 30 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge1', 'hostname': 'kg-topology-CloudEOSEdge1'}, 'text': 'Hostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3168041.26, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DB3968957436BF7623C810C9F13FC97E', 'systemMacAddress': '02:9e:d2:0a:bb:fc', 'bootupTimestamp': 1597281454.0, 'memFree': 2843440, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 16 hours and 0 minutes\nTotal memory: 7818736 kB\nFree memory: 2843440 kB\n\n'}, 'show processes': {'json': {'processes': {'1928': {'totalActiveTime': 3240711, 'memPct': 3.7, 'cpuPct': 102.0, 'startTime': 1597281524.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '17533': {'totalActiveTime': 5, 'memPct': 0.6, 'cpuPct': 2.7, 'startTime': 1600449306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1725': {'totalActiveTime': 14627, 'memPct': 2.3, 'cpuPct': 0.4, 'startTime': 1597281516.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1582': {'totalActiveTime': 6754, 'memPct': 8.6, 'cpuPct': 0.2, 'startTime': 1597281495.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1233': {'totalActiveTime': 6040, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '3405': {'totalActiveTime': 5749, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281695.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 304, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 29, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 49, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 90, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281455.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '380': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '407': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '499': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '747': {'totalActiveTime': 185, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '782': {'totalActiveTime': 64, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '789': {'totalActiveTime': 87, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '807': {'totalActiveTime': 16, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '819': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '824': {'totalActiveTime': 5, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '1005': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1007': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1017': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1018': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1034': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1038': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1039': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1179': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1180': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1213': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1216': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1218': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1232': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1478': {'totalActiveTime': 730, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1486': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1501': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1538': {'totalActiveTime': 158, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1539': {'totalActiveTime': 3074, 'memPct': 2.6, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1581': {'totalActiveTime': 46, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1584': {'totalActiveTime': 141, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1585': {'totalActiveTime': 75, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 548, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 239, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1726': {'totalActiveTime': 165, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1745': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1746': {'totalActiveTime': 317, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 1127, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 2185, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1768': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1769': {'totalActiveTime': 275, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1772': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 223, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1775': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1777': {'totalActiveTime': 530, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1779': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 1809, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1781': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1783': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1784': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1787': {'totalActiveTime': 2623, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1789': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1790': {'totalActiveTime': 596, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1791': {'totalActiveTime': 93, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1794': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1795': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1796': {'totalActiveTime': 265, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1797': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1798': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 1530, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1800': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1802': {'totalActiveTime': 353, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1804': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 138, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1807': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1809': {'totalActiveTime': 249, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1815': {'totalActiveTime': 244, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1817': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1818': {'totalActiveTime': 344, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1821': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 271, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1824': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1826': {'totalActiveTime': 208, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1828': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1831': {'totalActiveTime': 129, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1839': {'totalActiveTime': 71, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1841': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1842': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1844': {'totalActiveTime': 152, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1847': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1853': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1854': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1859': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 428, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1881': {'totalActiveTime': 278, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 117, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1906': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1907': {'totalActiveTime': 583, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1910': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1911': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1912': {'totalActiveTime': 145, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1915': {'totalActiveTime': 270, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1916': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1919': {'totalActiveTime': 121, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 1099, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '1922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '1926': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2295': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2356': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2360': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2363': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2617': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2631': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2634': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2637': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2660': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2662': {'totalActiveTime': 595, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2671': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2699': {'totalActiveTime': 62, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3289': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3290': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3295': {'totalActiveTime': 475, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3297': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3301': {'totalActiveTime': 244, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3304': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3307': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3308': {'totalActiveTime': 268, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3365': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3367': {'totalActiveTime': 68, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3403': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3404': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3929': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281918.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '4048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281919.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '8818': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599873559.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '15229': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448281.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '15663': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600448641.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '17136': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449001.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '17513': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '17531': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449305.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '18082': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449495.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '18981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18982': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18983': {'totalActiveTime': 120, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '19027': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '19029': {'totalActiveTime': 115, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30730': {'totalActiveTime': 929, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597697371.0, 'cmd': 'dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay', 'state': 'Sl', 'ttyName': '?'}, '30750': {'totalActiveTime': 765, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597697372.0, 'cmd': 'docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc', 'state': 'Ssl', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3168042.03, 'loadAvg': [1.16, 1.19, 1.2], 'users': 0, 'currentTime': 1600449496.324146}}, 'text': " 17:18:17 up 36 days, 16:00, 0 users, load average: 1.39, 1.23, 1.22\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 1928 102 3.7 ? Sl Aug 13 37-12:11:52 Sfe\n17533 2.7 0.6 ? SNl 17:15:06 00:00:05 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1725 0.4 2.3 ? Sl Aug 13 04:03:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1582 0.2 8.6 ? Sl Aug 13 01:52:34 ConfigAgent\n 1233 0.1 0.9 ? S Aug 13 01:40:40 ProcMgr-worker\n 3405 0.1 1.4 ? S Aug 13 01:35:49 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:05:04 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:29 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 747 0.0 0.1 ? Ss Aug 13 00:03:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 782 0.0 0.0 ? Ss Aug 13 00:01:04 /usr/bin/ProcMonitor\n 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind\n 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n\n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60\n 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1478 0.0 0.0 ? S Aug 13 00:12:10 /usr/bin/EosOomAdjust\n 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu]\n 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor\n 1539 0.0 2.6 ? S Aug 13 00:51:14 Sysdb\n 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr\n 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru\n 1585 0.0 1.8 ? S Aug 13 00:01:15 Launcher\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1718 0.0 1.2 ? S Aug 13 00:09:08 Lldp\n 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1720 0.0 1.2 ? S Aug 13 00:03:59 McastCommon\n 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1726 0.0 1.1 ? S Aug 13 00:02:45 PortSec\n 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1746 0.0 1.4 ? S Aug 13 00:05:17 Bfd\n 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.3 ? S Aug 13 00:18:47 Lag\n 1754 0.0 1.7 ? S Aug 13 00:36:25 SuperServer\n 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1769 0.0 1.5 ? S Aug 13 00:04:35 Ira\n 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.2 ? S Aug 13 00:03:43 LedPolicy\n 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1777 0.0 1.3 ? S Aug 13 00:08:50 EventMgr\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.2 ? S Aug 13 00:30:09 StpTxRx\n 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1787 0.0 1.0 ? S Aug 13 00:43:43 AgentMonitor\n 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1790 0.0 1.6 ? Sl Aug 13 00:09:56 Aaa\n 1791 0.0 1.2 ? S Aug 13 00:01:33 Tunnel\n 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1796 0.0 1.2 ? S Aug 13 00:04:25 StpTopology\n 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1799 0.0 1.4 ? S Aug 13 00:25:30 Acl\n 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1802 0.0 1.1 ? S Aug 13 00:05:53 Stp\n 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.1 ? S Aug 13 00:02:18 KernelNetworkInfo\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1809 0.0 1.2 ? S Aug 13 00:04:09 McastCommon6\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1815 0.0 1.2 ? S Aug 13 00:04:04 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1818 0.0 1.5 ? S Aug 13 00:05:44 Arp\n 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.4 ? S Aug 13 00:04:31 KernelFib\n 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1826 0.0 1.2 ? S Aug 13 00:03:28 Qos\n 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1831 0.0 1.1 ? S Aug 13 00:02:09 Thermostat\n 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib\n 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager\n 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1860 0.0 1.4 ? S Aug 13 00:07:08 Ebra\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1881 0.0 1.5 ? S Aug 13 00:04:38 IgmpSnooping\n 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.3 ? S Aug 13 00:01:57 StaticRoute\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1907 0.0 1.7 ? S Aug 13 00:09:43 IpRib\n 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1912 0.0 1.9 ? S Aug 13 00:02:25 BgpCliHelper\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1915 0.0 1.3 ? S Aug 13 00:04:30 ConnectedRoute\n 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1919 0.0 1.3 ? S Aug 13 00:02:01 RouteInput\n 1920 0.0 2.3 ? Sl Aug 13 00:18:19 Bgp\n 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n\n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager\n 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console\n 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2662 0.0 1.2 ? S Aug 13 00:09:55 Ipsec\n 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3295 0.0 1.2 ? S Aug 13 00:07:55 Nat\n 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3301 0.0 1.3 ? S Aug 13 00:04:04 Vxlan\n 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3308 0.0 1.3 ? S Aug 13 00:04:28 VxlanSwFwd\n 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog\n 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1]\n15229 0.0 0.0 ? S 16:58:01 00:00:00 [kworker/0:1]\n15663 0.0 0.0 ? S 17:04:01 00:00:00 [kworker/0:3]\n17136 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0]\n17513 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n17531 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:2]\n18100 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18983 0.0 1.3 ? Sl Aug 26 00:02:00 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n19029 0.0 0.1 ? S Aug 26 00:01:55 nginx: worker process \n30730 0.0 0.4 ? Sl Aug 17 00:15:29 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay\n30750 0.0 0.1 ? Ssl Aug 17 00:12:45 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 123932, 'authorizationAllowed': 2801, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 7, 'authenticationUnavailable': 389, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 123935\n Failed: 7\n Service unavailable: 389\n\nAuthorization\n Allowed: 2801\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'125754': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600449473, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n125754 kgrozis command-api E 0:00:26 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 34, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 34 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.119, 'jitter': 0.056, 'lastReceived': 1600449329.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.151, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 174 1024 377 0.119 -0.151 0.056\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281517.198929, 'pid': 1725, 'enabled': True, 'uptime': 3167986.88, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1725)\nUptime: 36 days, 15:59:47 (Start time: Thu Aug 13 01:18:37 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291195392 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291195392 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 113921, 'bytesOut': 323719379, 'lastHitTime': 1600449507.1987827, 'bytesIn': 18352606}}, 'bytesOut': 323719379, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 120445, 'vrf': 'default', 'lastHitTime': 1600449507.198742, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 9829.635390120908, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 113921, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.14.101:443', 'Ethernet2 : https://11.201.14.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.1:443', 'Loopback10 : https://198.18.0.35:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 18352606, 'commandCount': 227842, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 120450\nLast hit: 0 seconds ago\nBytes in: 18353429\nBytes out: 323722208\nRequests: 113926\nCommands: 227852\nDuration: 9829.710 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 113926 18353429 323722208 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.14.101:443 \nEthernet2 : https://11.201.14.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.1:443 \nLoopback10 : https://198.18.0.35:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:35:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:11 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:00 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:08 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:35:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:11 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:00 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:08 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge1: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge1: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEOSEdge1] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| 1 second CPU load average is |1.16%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.16| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 17:18:16 up 36 days, 16:00, 0 users, load average: 1.39, 1.23, 1.22 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 37-12:11:52 Sfe 17533 2.7 0.6 ? SNl 17:15:06 00:00:05 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1725 0.4 2.3 ? Sl Aug 13 04:03:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 01:52:34 ConfigAgent 1233 0.1 0.9 ? S Aug 13 01:40:40 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:35:49 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:05:04 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:29 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:03:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:01:04 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:12:10 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:51:14 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru 1585 0.0 1.8 ? S Aug 13 00:01:15 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:09:08 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:03:59 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:02:45 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:05:17 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:18:47 Lag 1754 0.0 1.7 ? S Aug 13 00:36:25 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:35 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:03:43 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:08:50 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:30:09 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:43:43 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:09:56 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:33 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:25 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:25:30 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:05:53 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:18 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:04:09 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:04:04 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:05:44 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:31 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:28 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:09 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:07:08 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:04:38 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:01:57 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:09:43 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:25 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:30 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:02:01 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:18:19 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:09:55 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:07:55 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:04:04 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:28 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 15229 0.0 0.0 ? S 16:58:01 00:00:00 [kworker/0:1] 15663 0.0 0.0 ? S 17:04:01 00:00:00 [kworker/0:3] 17136 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0] 17513 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 17531 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:2] 18096 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:02:00 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:01:55 nginx: worker process 30730 0.0 0.4 ? Sl Aug 17 00:15:29 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:12:45 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEOSEdge1] | Verify tacacs messages are sending correctly | 0.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:394 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:400 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEOSEdge1| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEOSEdge1] | Verify tacacs messages are received correctly | 0.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:394 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:400 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEOSEdge1| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEOSEdge1] | Verify username is set correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| |ec2-user| username is |configured| On router |kg-topology-CloudEOSEdge1| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show running-config section username| on kg-topology-CloudEOSEdge1 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEOSEdge1| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEOSEdge1| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_fcs_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no fcsErrors errors | 0.29 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| fcsErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:454 TEST if interface |Ethernet1| counters has fcsErrors errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:456 GIVEN interface fcsErrors errors of |0| INFO root:test_interface.py:458 WHEN interface fcsErrors errors is |0| INFO root:test_interface.py:466 THEN test case result is |{test_result}| INFO root:test_interface.py:467 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 3 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_fcs_errors_on_ with parameters {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:test_interface.py:454 TEST if interface |Ethernet2| counters has fcsErrors errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:456 GIVEN interface fcsErrors errors of |0| INFO root:test_interface.py:458 WHEN interface fcsErrors errors is |0| INFO root:test_interface.py:466 THEN test case result is |{test_result}| INFO root:test_interface.py:467 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 3 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEOSEdge1] | Verify a list of extension are not erroring on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| awslogs.swix extension error is |False| On router |kg-topology-CloudEOSEdge1| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge1 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEOSEdge1] | Verify hostname is set on device is correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show hostname| on kg-topology-CloudEOSEdge1 INFO root:test_host.py:72 TEST is hostname kg-topology-CloudEOSEdge1 correct INFO root:test_host.py:73 GIVEN hostname kg-topology-CloudEOSEdge1 INFO root:test_host.py:74 WHEN hostname is kg-topology-CloudEOSEdge1 INFO root:test_host.py:81 THEN test case result is |False| INFO root:test_host.py:82 OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEOSEdge1 FQDN: kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEOSEdge1] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show zerotouch| on kg-topology-CloudEOSEdge1 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEOSEdge1| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEOSEdge1] | Verify local log messages | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| message |critical| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |warning| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |ECC| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |servers errors| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show logging| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show logging| on kg-topology-CloudEOSEdge1 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:35:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:14:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:11 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:33:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:49:00 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:08 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:35:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:14:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:11 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:33:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:49:00 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:08 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:35:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:14:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:11 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:33:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:49:00 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:08 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:35:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:14:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:11 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:33:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:49:00 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:08 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:35:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:14:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:11 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:12 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:18 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:33:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:21 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:34 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:51 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:49:00 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:08 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:49 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_alignment_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no alignmentErrors errors | 0.39 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| alignmentErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:504 TEST if interface |Ethernet1| counters has alignmentErrors errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:506 GIVEN interface alignmentErrors errors of |0| INFO root:test_interface.py:508 WHEN interface alignmentErrors errors is |0| INFO root:test_interface.py:516 THEN test case result is |{test_result}| INFO root:test_interface.py:517 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_alignment_errors_on_ with parameters {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:test_interface.py:504 TEST if interface |Ethernet2| counters has alignmentErrors errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:506 GIVEN interface alignmentErrors errors of |0| INFO root:test_interface.py:508 WHEN interface alignmentErrors errors is |0| INFO root:test_interface.py:516 THEN test case result is |{test_result}| INFO root:test_interface.py:517 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEOSEdge1] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEOSEdge1 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEOSEdge1| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7291195392 bytes free) | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEOSEdge2] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest protocol statuses are up | 0.34 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| - On interface |Ethernet2|: interface link line protocol status is set to: |up|, correct state is |up| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:370 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:79 TEST if interface |Ethernet1| link prootocol statuses are up on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:81 GIVEN interface status is |up| INFO root:test_interface.py:85 WHEN interface status is |up| INFO root:test_interface.py:88 THEN test case result is |True| INFO root:test_interface.py:89 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 8 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'actual_output': 'up', 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:test_interface.py:79 TEST if interface |Ethernet2| link prootocol statuses are up on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:81 GIVEN interface status is |up| INFO root:test_interface.py:85 WHEN interface status is |up| INFO root:test_interface.py:88 THEN test case result is |True| INFO root:test_interface.py:89 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 8 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEOSEdge2] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show users detail| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEOSEdge2| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 125417 kgrozis command-api E 0:00:27 local | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_symbol_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no alignmentErrors errors | 0.31 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| symbolErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:554 TEST if interface |Ethernet1| counters has symbolErrors errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:556 GIVEN interface symbolErrors errors of |0| INFO root:test_interface.py:558 WHEN interface symbolErrors errors is |0| INFO root:test_interface.py:568 THEN test case result is |{test_result}| INFO root:test_interface.py:569 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_symbol_errors_on_ with parameters {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:test_interface.py:554 TEST if interface |Ethernet2| counters has symbolErrors errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:556 GIVEN interface symbolErrors errors of |0| INFO root:test_interface.py:558 WHEN interface symbolErrors errors is |0| INFO root:test_interface.py:568 THEN test case result is |{test_result}| INFO root:test_interface.py:569 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest link statuses are up | 0.32 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet2|: interface link line protocol status is set to: |connected|, correct state is |connected| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:370 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:128 TEST if interface |Ethernet1| link status is up on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:130 GIVEN interface status is |connected| INFO root:test_interface.py:134 WHEN interface status is |connected| INFO root:test_interface.py:137 THEN test case result is |True| INFO root:test_interface.py:138 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'actual_output': 'connected', 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:test_interface.py:128 TEST if interface |Ethernet2| link status is up on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:130 GIVEN interface status is |connected| INFO root:test_interface.py:134 WHEN interface status is |connected| INFO root:test_interface.py:137 THEN test case result is |True| INFO root:test_interface.py:138 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEOSEdge1] | Verify memory is not exceeding high utlization | 0.99 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |dut_name| memory utilization percent is |36.36700356681693%| and should be under 70% -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show version| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show version| on kg-topology-CloudEOSEdge1 INFO root:test_memory.py:71 TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_memory.py:73 GIVEN memory utilization is less than |70%| INFO root:test_memory.py:80 WHEN memory utilization is |36.36700356681693| INFO root:test_memory.py:83 THEN test case result is |True%| INFO root:test_memory.py:84 OUTPUT of |show version| is : Arista vEOS Hardware version: Serial number: DB3968957436BF7623C810C9F13FC97E System MAC address: 029e.d20a.bbfc Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 5 weeks, 1 days, 16 hours and 0 minutes Total memory: 7818736 kB Free memory: 2828384 kB INFO root:tests_tools.py:502 Find the Index for test suite: test_memory.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_memory.py exists in results file at index 1 INFO root:tests_tools.py:517 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_memory_utilization_on_ exists in results file at index 0 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True, 'actual_output': 36.36700356681693, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_out_counters_are_discarding_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no outDiscards | 0.57 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - - On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0| - - On interface |Ethernet2|: interface counter discards has |0| outDiscards, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:619 TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:621 GIVEN interface outbound discards of |0| INFO root:test_interface.py:623 WHEN interface outbound discards are |0| INFO root:test_interface.py:632 THEN test case result is |{test_result}| INFO root:test_interface.py:633 OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 9 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_out_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:test_interface.py:619 TEST if interface |Ethernet2| counters has outbound discards on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:621 GIVEN interface outbound discards of |0| INFO root:test_interface.py:623 WHEN interface outbound discards are |0| INFO root:test_interface.py:632 THEN test case result is |{test_result}| INFO root:test_interface.py:633 OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 9 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEOSEdge1] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show ntp status| on kg-topology-CloudEOSEdge1 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEOSEdge1| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 34 ms polling server every 1024 s | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest physical state is link up | 0.42 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEOSEdge1 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:370 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:417 Verify if kg-topology-CloudEOSEdge1 DUT is a VEOS instance INFO root:tests_tools.py:421 kg-topology-CloudEOSEdge1 is a VEOS instance so returning True INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_phy_status_connected_on_ exists in results file at index 6 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'actual_output': None, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEOSEdge1] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show ntp associations| on kg-topology-CloudEOSEdge1 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEOSEdge1| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 175 1024 377 0.119 -0.151 0.056 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_in_counters_are_discarding_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no inDiscards | 0.37 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|. GIVEN interface outbound discards of |0|. WHEN interface outbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 - On interface |Ethernet2|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet2| counters has outbound discards on |kg-topology-CloudEOSEdge1|. GIVEN interface outbound discards of |0|. WHEN interface outbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 5 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_in_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'fail_reason': '', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1'} INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 5 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEOSEdge1] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEOSEdge1| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 17:18:17 up 36 days, 16:00, 0 users, load average: 1.39, 1.23, 1.22 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 37-12:11:52 Sfe 17533 2.7 0.6 ? SNl 17:15:06 00:00:05 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1725 0.4 2.3 ? Sl Aug 13 04:03:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 01:52:34 ConfigAgent 1233 0.1 0.9 ? S Aug 13 01:40:40 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:35:49 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:05:04 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:29 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:03:05 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:01:04 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:12:10 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:51:14 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru 1585 0.0 1.8 ? S Aug 13 00:01:15 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:09:08 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:03:59 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:02:45 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:05:17 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:18:47 Lag 1754 0.0 1.7 ? S Aug 13 00:36:25 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:35 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:03:43 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:08:50 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:30:09 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:43:43 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:09:56 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:33 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:25 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:25:30 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:05:53 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:18 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:04:09 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:04:04 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:05:44 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:31 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:28 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:09 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:07:08 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:04:38 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:01:57 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:09:43 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:25 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:30 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:02:01 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:18:19 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:09:55 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:07:55 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:04:04 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:28 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 15229 0.0 0.0 ? S 16:58:01 00:00:00 [kworker/0:1] 15663 0.0 0.0 ? S 17:04:01 00:00:00 [kworker/0:3] 17136 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0] 17513 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 17531 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:2] 18108 0.0 0.0 ? Rs 17:18:17 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:02:00 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:01:55 nginx: worker process 30730 0.0 0.4 ? Sl Aug 17 00:15:29 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:12:45 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest does not have input errors | 0.68 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| inErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:256 TEST if interface |Ethernet1| counters has input errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:258 GIVEN interface input errors of |0| INFO root:test_interface.py:260 WHEN interface input errors is |{actual_output}| INFO root:test_interface.py:267 THEN test case result is |{test_result}| INFO root:test_interface.py:268 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:test_interface.py:256 TEST if interface |Ethernet2| counters has input errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:258 GIVEN interface input errors of |0| INFO root:test_interface.py:260 WHEN interface input errors is |{actual_output}| INFO root:test_interface.py:267 THEN test case result is |{test_result}| INFO root:test_interface.py:268 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA priviledge accounting method-lists are set correct | 0.04 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEOSEdge2] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 120411 Last hit: 0 seconds ago Bytes in: 18347109 Bytes out: 321237581 Requests: 113888 Commands: 227776 Duration: 12720.364 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 113888 18347109 321237581 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEOSEdge2] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 120412 Last hit: 0 seconds ago Bytes in: 18347274 Bytes out: 321238845 Requests: 113889 Commands: 227778 Duration: 12720.404 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 113889 18347274 321238845 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest does not have output errors | 0.51 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| outErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:305 TEST if interface |Ethernet1| counters has output errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:307 GIVEN interface output errors of |0| INFO root:test_interface.py:309 WHEN interface output errors is |{actual_output}| INFO root:test_interface.py:316 THEN test case result is |{test_result}| INFO root:test_interface.py:317 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:test_interface.py:305 TEST if interface |Ethernet2| counters has output errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:307 GIVEN interface output errors of |0| INFO root:test_interface.py:309 WHEN interface output errors is |{actual_output}| INFO root:test_interface.py:316 THEN test case result is |{test_result}| INFO root:test_interface.py:317 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:370 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEOSEdge2] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 120411 Last hit: 0 seconds ago Bytes in: 18347109 Bytes out: 321237581 Requests: 113888 Commands: 227776 Duration: 12720.364 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 113888 18347109 321237581 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEOSEdge2] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 120412 Last hit: 0 seconds ago Bytes in: 18347274 Bytes out: 321238845 Requests: 113889 Commands: 227778 Duration: 12720.404 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 113889 18347274 321238845 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEOSEdge2] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| 1 second CPU load average is |1.51%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.51| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 17:18:17 up 36 days, 16:00, 0 users, load average: 1.51, 1.54, 1.46 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 37-04:45:05 Sfe 32227 4.2 0.6 ? SNl 17:15:06 00:00:08 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1675 2.5 2.1 ? Sl Aug 13 22:41:22 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 1476 0.3 2.6 ? S Aug 13 02:44:20 Sysdb 1518 0.3 7.6 ? Sl Aug 13 03:17:06 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:10:42 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 01:51:49 IpRib 1703 0.1 1.7 ? S Aug 13 01:07:50 SuperServer 1719 0.1 1.2 ? S Aug 13 00:56:11 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:44:21 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:08:30 Bgp 3369 0.1 1.4 ? S Aug 13 01:42:11 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:07:50 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:21 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 333 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 334 0.0 4.8 ? R 17:18:16 00:00:00 ConfigAgent 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:03:43 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:05:41 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:12:25 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:02:52 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:06:17 StageMgr 1521 0.0 1.4 ? S Aug 13 00:22:15 Fru 1524 0.0 1.8 ? S Aug 13 00:10:58 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:30:18 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:22:28 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:24:31 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:23:57 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:44:32 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:22:43 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:26:50 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:29:39 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:06:20 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:10:17 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:17:28 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:22:37 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:49:48 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:36:26 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:07:25 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:22:32 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:22:45 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:33:43 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:22:40 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:25:32 Qos 1856 0.0 1.1 ? S Aug 13 00:07:26 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:07:27 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:22:33 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:06:19 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:06:19 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:29:01 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:06:20 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:06:20 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:22:51 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:07:26 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:07:36 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:22:47 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:07:27 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:06:21 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:11 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:46:57 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:49:34 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:23:49 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:25:03 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:03:45 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:06:34 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:02:44 nginx: worker process 27065 0.0 0.0 ? S 16:48:00 00:00:00 [kworker/0:2] 28488 0.0 0.0 ? S 16:53:01 00:00:00 [kworker/0:1] 31812 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0] 32207 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 32225 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:3] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEOSEdge2] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:370 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 120411 Last hit: 0 seconds ago Bytes in: 18347109 Bytes out: 321237581 Requests: 113888 Commands: 227776 Duration: 12720.364 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 113888 18347109 321237581 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEOSEdge2] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge2 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEOSEdge2| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1675) Uptime: 36 days, 15:59:32 (Start time: Thu Aug 13 01:18:53 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no frameTooShorts errors | 0.49 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| frameTooShorts, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:test_interface.py:354 TEST if interface |Ethernet1| counters has frameTooShorts errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:356 GIVEN interface frameTooShorts errors of |0| INFO root:test_interface.py:358 WHEN interface frameTooShorts errors is |0| INFO root:test_interface.py:366 THEN test case result is |{test_result}| INFO root:test_interface.py:367 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:test_interface.py:354 TEST if interface |Ethernet2| counters has frameTooShorts errors on |kg-topology-CloudEOSEdge1| INFO root:test_interface.py:356 GIVEN interface frameTooShorts errors of |0| INFO root:test_interface.py:358 WHEN interface frameTooShorts errors is |0| INFO root:test_interface.py:366 THEN test case result is |{test_result}| INFO root:test_interface.py:367 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEOSEdge2] | Verify 1 minute CPU % is under specificied value | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| 1 minute CPU load average is |1.54%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.54| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 17:18:17 up 36 days, 16:00, 0 users, load average: 1.51, 1.54, 1.46 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 37-04:45:05 Sfe 32227 4.2 0.6 ? SNl 17:15:06 00:00:08 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1675 2.5 2.1 ? Sl Aug 13 22:41:22 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 1476 0.3 2.6 ? S Aug 13 02:44:20 Sysdb 1518 0.3 7.6 ? Sl Aug 13 03:17:06 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:10:42 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 01:51:49 IpRib 1703 0.1 1.7 ? S Aug 13 01:07:50 SuperServer 1719 0.1 1.2 ? S Aug 13 00:56:11 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:44:21 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:08:30 Bgp 3369 0.1 1.4 ? S Aug 13 01:42:11 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:07:50 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:21 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 333 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 334 0.0 4.8 ? R 17:18:16 00:00:00 ConfigAgent 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:03:43 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:05:41 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:12:25 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:02:52 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:06:17 StageMgr 1521 0.0 1.4 ? S Aug 13 00:22:15 Fru 1524 0.0 1.8 ? S Aug 13 00:10:58 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:30:18 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:22:28 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:24:31 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:23:57 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:44:32 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:22:43 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:26:50 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:29:39 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:06:20 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:10:17 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:17:28 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:22:37 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:49:48 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:36:26 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:07:25 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:22:32 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:22:45 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:33:43 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:22:40 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:25:32 Qos 1856 0.0 1.1 ? S Aug 13 00:07:26 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:07:27 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:22:33 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:06:19 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:06:19 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:29:01 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:06:20 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:06:20 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:22:51 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:07:26 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:07:36 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:22:47 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:07:27 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:06:21 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:11 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:46:57 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:49:34 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:23:49 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:25:03 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:03:45 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:06:34 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:02:44 nginx: worker process 27065 0.0 0.0 ? S 16:48:00 00:00:00 [kworker/0:2] 28488 0.0 0.0 ? S 16:53:01 00:00:00 [kworker/0:1] 31812 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0] 32207 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 32225 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:3] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEOSEdge2] | Verify a list of extension are installed on a DUT | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| awslogs.swix extension is |installed| On router |kg-topology-CloudEOSEdge2| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge2 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEOSEdge2] | Verify a list of daemons are enabled on DUT | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEOSEdge2| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:370 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge2 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1675) Uptime: 36 days, 15:59:32 (Start time: Thu Aug 13 01:18:53 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEOSEdge2] | Verify hostname is set on device is correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show hostname| on kg-topology-CloudEOSEdge2 INFO root:test_host.py:72 TEST is hostname kg-topology-CloudEOSEdge2 correct INFO root:test_host.py:73 GIVEN hostname kg-topology-CloudEOSEdge2 INFO root:test_host.py:74 WHEN hostname is kg-topology-CloudEOSEdge2 INFO root:test_host.py:81 THEN test case result is |False| INFO root:test_host.py:82 OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEOSEdge2 FQDN: kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEOSEdge2] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| 5 minute CPU load average is |1.46%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.46| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 17:18:17 up 36 days, 16:00, 0 users, load average: 1.51, 1.54, 1.46 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 37-04:45:05 Sfe 32227 4.2 0.6 ? SNl 17:15:06 00:00:08 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1675 2.5 2.1 ? Sl Aug 13 22:41:22 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 1476 0.3 2.6 ? S Aug 13 02:44:20 Sysdb 1518 0.3 7.6 ? Sl Aug 13 03:17:06 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:10:42 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 01:51:49 IpRib 1703 0.1 1.7 ? S Aug 13 01:07:50 SuperServer 1719 0.1 1.2 ? S Aug 13 00:56:11 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:44:21 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:08:30 Bgp 3369 0.1 1.4 ? S Aug 13 01:42:11 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:07:50 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:21 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 333 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 334 0.0 4.8 ? R 17:18:16 00:00:00 ConfigAgent 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:03:43 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:05:41 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:12:25 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:02:52 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:06:17 StageMgr 1521 0.0 1.4 ? S Aug 13 00:22:15 Fru 1524 0.0 1.8 ? S Aug 13 00:10:58 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:30:18 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:22:28 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:24:31 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:23:57 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:44:32 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:22:43 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:26:50 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:29:39 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:06:20 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:10:17 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:17:28 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:22:37 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:49:48 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:36:26 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:07:25 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:22:32 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:22:45 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:33:43 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:22:40 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:25:32 Qos 1856 0.0 1.1 ? S Aug 13 00:07:26 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:07:27 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:22:33 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:06:19 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:06:19 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:29:01 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:06:20 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:06:20 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:22:51 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:07:26 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:07:36 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:22:47 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:07:27 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:06:21 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:11 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:46:57 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:49:34 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:23:49 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:25:03 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:03:45 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:06:34 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:02:44 nginx: worker process 27065 0.0 0.0 ? S 16:48:00 00:00:00 [kworker/0:2] 28488 0.0 0.0 ? S 16:53:01 00:00:00 [kworker/0:1] 31812 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0] 32207 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 32225 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:3] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEOSEdge2] | Verify a list of extension are not erroring on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| awslogs.swix extension error is |False| On router |kg-topology-CloudEOSEdge2| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge2 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest protocol statuses are up | 0.48 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| - On interface |Ethernet2|: interface link line protocol status is set to: |up|, correct state is |up| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:370 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:79 TEST if interface |Ethernet1| link prootocol statuses are up on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:81 GIVEN interface status is |up| INFO root:test_interface.py:85 WHEN interface status is |up| INFO root:test_interface.py:88 THEN test case result is |True| INFO root:test_interface.py:89 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 8 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'actual_output': 'up', 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:test_interface.py:79 TEST if interface |Ethernet2| link prootocol statuses are up on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:81 GIVEN interface status is |up| INFO root:test_interface.py:85 WHEN interface status is |up| INFO root:test_interface.py:88 THEN test case result is |True| INFO root:test_interface.py:89 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 8 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest link statuses are up | 0.86 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet2|: interface link line protocol status is set to: |connected|, correct state is |connected| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:370 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:128 TEST if interface |Ethernet1| link status is up on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:130 GIVEN interface status is |connected| INFO root:test_interface.py:134 WHEN interface status is |connected| INFO root:test_interface.py:137 THEN test case result is |True| INFO root:test_interface.py:138 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'actual_output': 'connected', 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:test_interface.py:128 TEST if interface |Ethernet2| link status is up on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:130 GIVEN interface status is |connected| INFO root:test_interface.py:134 WHEN interface status is |connected| INFO root:test_interface.py:137 THEN test case result is |True| INFO root:test_interface.py:138 OUTPUT of |show interfaces status| is : Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEOSEdge2] | Verify DNS is running by performing pings and verifying name resolution | 1.43 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| DNS resolution |Passed| for google.com On router |kg-topology-CloudEOSEdge2| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEOSEdge2| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge2| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (172.217.0.14) 72(100) bytes of data. 76 bytes from ord38s04-in-f14.1e100.net (172.217.0.14): icmp_seq=1 ttl=101 (truncated) 76 bytes from ord38s04-in-f14.1e100.net (172.217.0.14): icmp_seq=2 ttl=101 (truncated) 76 bytes from ord38s04-in-f14.1e100.net (172.217.0.14): icmp_seq=3 ttl=101 (truncated) 76 bytes from ord38s04-in-f14.1e100.net (172.217.0.14): icmp_seq=4 ttl=101 (truncated) 76 bytes from ord38s04-in-f14.1e100.net (172.217.0.14): icmp_seq=5 ttl=101 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 65ms rtt min/avg/max/mdev = 16.672/16.982/18.144/0.592 ms, pipe 2, ipg/ewma 16.382/17.543 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge2| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.1.67) 72(100) bytes of data. 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=1 ttl=39 time=12.1 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=2 ttl=39 time=10.5 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=3 ttl=39 time=10.5 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=4 ttl=39 time=10.5 ms 80 bytes from 151.101.1.67 (151.101.1.67): icmp_seq=5 ttl=39 time=10.5 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 50ms rtt min/avg/max/mdev = 10.540/10.875/12.165/0.648 ms, pipe 2, ipg/ewma 12.578/11.498 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge2| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=39 time=24.3 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=39 time=23.0 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=39 time=23.0 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=39 time=23.0 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=39 time=23.0 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 69ms rtt min/avg/max/mdev = 23.006/23.293/24.396/0.559 ms, pipe 3, ipg/ewma 17.426/23.825 ms | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEOSEdge2] | Verify filesystem is correct and expected files are present | 1.04 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEOSEdge2|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEOSEdge2|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEOSEdge2| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-CloudEOSEdge2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281921.9977474, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281727.4354625, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.3', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281563.00588, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:35:02:ca:82:97', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.954437, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:ca:82:97', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281560.6477785, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:67:85:22:a7:80', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 88329.00396172017, 'inPktsRate': 58.29424532491097, 'outBitsRate': 49300.04571634091, 'updateInterval': 300.0, 'outPktsRate': 50.991496679408876}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 117381387, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.955529, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 21152521872, 'outDiscards': 0, 'outOctets': 13175192251, 'inUcastPkts': 129532156, 'inTotalPkts': 129532156, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281923.2268054, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281560.766413, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:35:02:47:e5:30', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 53258.55474912865, 'inPktsRate': 55.572673372748625, 'outBitsRate': 120059.25695161852, 'updateInterval': 300.0, 'outPktsRate': 65.66176156760062}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 139886724, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.961903, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 14091322662, 'outDiscards': 0, 'outOctets': 29642849346, 'inUcastPkts': 118849266, 'inTotalPkts': 118849266, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:47:e5:30', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281723.3885167, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.3'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281539.3698246, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.37'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 53.3 kbps (- with framing overhead), 56 packets/sec\n 5 minutes output rate 120 kbps (- with framing overhead), 66 packets/sec\n 118849266 packets input, 14091322662 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 139886724 packets output, 29642849346 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.4 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.3 kbps (- with framing overhead), 51 packets/sec\n 129532288 packets input, 21152547469 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 117381498 packets output, 13175205931 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 51 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 51 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 11 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 15 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 52 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 6 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge2', 'hostname': 'kg-topology-CloudEOSEdge2'}, 'text': 'Hostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3168028.41, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DE52F26D16E91F22BB1B507175C8C765', 'systemMacAddress': '06:35:02:ca:82:97', 'bootupTimestamp': 1597281468.0, 'memFree': 2896092, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 16 hours and 0 minutes\nTotal memory: 7761392 kB\nFree memory: 2882952 kB\n\n'}, 'show processes': {'json': {'processes': {'2025': {'totalActiveTime': 3213904, 'memPct': 3.7, 'cpuPct': 101.0, 'startTime': 1597281547.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '32227': {'totalActiveTime': 8, 'memPct': 0.6, 'cpuPct': 4.2, 'startTime': 1600449306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1675': {'totalActiveTime': 81682, 'memPct': 2.1, 'cpuPct': 2.5, 'startTime': 1597281532.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1476': {'totalActiveTime': 9860, 'memPct': 2.6, 'cpuPct': 0.3, 'startTime': 1597281508.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1518': {'totalActiveTime': 11825, 'memPct': 7.6, 'cpuPct': 0.3, 'startTime': 1597281511.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1243': {'totalActiveTime': 7842, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1951': {'totalActiveTime': 6709, 'memPct': 1.7, 'cpuPct': 0.2, 'startTime': 1597281544.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 4070, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281534.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 3371, 'memPct': 1.2, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 6261, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1980': {'totalActiveTime': 4110, 'memPct': 2.3, 'cpuPct': 0.1, 'startTime': 1597281546.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '3369': {'totalActiveTime': 6131, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281726.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 470, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 32, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '326': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449496.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '378': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '410': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '746': {'totalActiveTime': 223, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '770': {'totalActiveTime': 341, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '784': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '790': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '880': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '889': {'totalActiveTime': 27, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '998': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1000': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1015': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1019': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1021': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1031': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1062': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281482.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1189': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1190': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1224': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1226': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1228': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1242': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1415': {'totalActiveTime': 745, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281507.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1423': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1438': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1475': {'totalActiveTime': 172, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1517': {'totalActiveTime': 377, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1521': {'totalActiveTime': 1335, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1524': {'totalActiveTime': 658, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281512.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1651': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1653': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1654': {'totalActiveTime': 1818, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1659': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1661': {'totalActiveTime': 1348, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1665': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1666': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1668': {'totalActiveTime': 1471, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1669': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1698': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1699': {'totalActiveTime': 1437, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1701': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1702': {'totalActiveTime': 2672, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1709': {'totalActiveTime': 1363, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1710': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1610, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1716': {'totalActiveTime': 1779, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1723': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1724': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1725': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1730': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1731': {'totalActiveTime': 617, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 1048, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1736': {'totalActiveTime': 1357, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1738': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1741': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1743': {'totalActiveTime': 2988, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1756': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1759': {'totalActiveTime': 2186, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 445, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1789': {'totalActiveTime': 1352, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 1365, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1823': {'totalActiveTime': 2023, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1843': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1846': {'totalActiveTime': 1360, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1851': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1855': {'totalActiveTime': 1532, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 446, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1857': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1861': {'totalActiveTime': 447, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1862': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 1353, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1867': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1868': {'totalActiveTime': 379, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1870': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1871': {'totalActiveTime': 379, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1877': {'totalActiveTime': 1741, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1891': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1893': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 1371, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1944': {'totalActiveTime': 446, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1950': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1954': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1956': {'totalActiveTime': 456, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1958': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1959': {'totalActiveTime': 1367, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1962': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1963': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1968': {'totalActiveTime': 447, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2011': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2014': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2319': {'totalActiveTime': 34, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2592': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2596': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2597': {'totalActiveTime': 381, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2614': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2633': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 71, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2639': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2666': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281561.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2695': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2696': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2697': {'totalActiveTime': 2817, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2699': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2726': {'totalActiveTime': 174, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281564.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281567.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3232': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3237': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3242': {'totalActiveTime': 2974, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3254': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3257': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3263': {'totalActiveTime': 1429, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3275': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3277': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3278': {'totalActiveTime': 1503, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3315': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3317': {'totalActiveTime': 225, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3856': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281920.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '3977': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281922.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '26289': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '26290': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '26291': {'totalActiveTime': 394, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '26335': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '26337': {'totalActiveTime': 164, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '27065': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600447680.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '28488': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600447981.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '31812': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449001.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '32207': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '32225': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449305.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3168029.12, 'loadAvg': [1.51, 1.54, 1.46], 'users': 0, 'currentTime': 1600449496.835772}}, 'text': " 17:18:17 up 36 days, 16:00, 0 users, load average: 1.51, 1.54, 1.46\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2025 101 3.7 ? Sl Aug 13 37-04:45:05 Sfe\n32227 4.2 0.6 ? SNl 17:15:06 00:00:08 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1675 2.5 2.1 ? Sl Aug 13 22:41:22 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1476 0.3 2.6 ? S Aug 13 02:44:20 Sysdb\n 1518 0.3 7.6 ? Sl Aug 13 03:17:06 ConfigAgent\n 1243 0.2 0.9 ? S Aug 13 02:10:42 ProcMgr-worker\n 1951 0.2 1.7 ? S Aug 13 01:51:49 IpRib\n 1703 0.1 1.7 ? S Aug 13 01:07:50 SuperServer\n 1719 0.1 1.2 ? S Aug 13 00:56:11 StpTxRx\n 1727 0.1 1.0 ? S Aug 13 01:44:21 AgentMonitor\n 1980 0.1 2.3 ? Sl Aug 13 01:08:30 Bgp\n 3369 0.1 1.4 ? S Aug 13 01:42:11 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:07:50 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:21 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 342 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 746 0.0 0.0 ? Ss Aug 13 00:03:43 /usr/lib/systemd/systemd-logind\n 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor\n 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 770 0.0 0.1 ? Ss Aug 13 00:05:41 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n\n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60\n 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1415 0.0 0.0 ? S Aug 13 00:12:25 /usr/bin/EosOomAdjust\n 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu]\n 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1475 0.0 0.0 ? S Aug 13 00:02:52 /usr/bin/SlabMonitor\n 1517 0.0 1.2 ? S Aug 13 00:06:17 StageMgr\n 1521 0.0 1.4 ? S Aug 13 00:22:15 Fru\n 1524 0.0 1.8 ? S Aug 13 00:10:58 Launcher\n 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1654 0.0 1.3 ? S Aug 13 00:30:18 Lldp\n 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1661 0.0 1.2 ? S Aug 13 00:22:28 McastCommon\n 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1668 0.0 1.1 ? S Aug 13 00:24:31 PortSec\n 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1699 0.0 1.4 ? S Aug 13 00:23:57 Bfd\n 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1702 0.0 1.3 ? S Aug 13 00:44:32 Lag\n 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1709 0.0 1.5 ? S Aug 13 00:22:43 Ira\n 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:26:50 LedPolicy\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1716 0.0 1.3 ? S Aug 13 00:29:39 EventMgr\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1724 0.0 1.1 ? S Aug 13 00:06:20 StandbyCpld\n 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1731 0.0 1.2 ? S Aug 13 00:10:17 Tunnel\n 1732 0.0 1.6 ? Sl Aug 13 00:17:28 Aaa\n 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1736 0.0 1.2 ? S Aug 13 00:22:37 StpTopology\n 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1743 0.0 1.4 ? S Aug 13 00:49:48 Acl\n 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1759 0.0 1.1 ? S Aug 13 00:36:26 Stp\n 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.1 ? S Aug 13 00:07:25 KernelNetworkInfo\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1789 0.0 1.2 ? S Aug 13 00:22:32 McastCommon6\n 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.2 ? S Aug 13 00:22:45 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1823 0.0 1.5 ? S Aug 13 00:33:43 Arp\n 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1846 0.0 1.4 ? S Aug 13 00:22:40 KernelFib\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1855 0.0 1.2 ? S Aug 13 00:25:32 Qos\n 1856 0.0 1.1 ? S Aug 13 00:07:26 Thermostat\n 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1861 0.0 1.2 ? S Aug 13 00:07:27 L2Rib\n 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.2 ? S Aug 13 00:22:33 TopoAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1868 0.0 1.1 ? S Aug 13 00:06:19 PowerFuse\n 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1871 0.0 1.1 ? S Aug 13 00:06:19 PowerManager\n 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1877 0.0 1.4 ? S Aug 13 00:29:01 Ebra\n 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1893 0.0 1.1 ? S Aug 13 00:06:20 ReloadCauseAgent\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.1 ? S Aug 13 00:06:20 SharedSecretProfile\n 1905 0.0 1.5 ? S Aug 13 00:22:51 IgmpSnooping\n 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1944 0.0 1.3 ? S Aug 13 00:07:26 StaticRoute\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1956 0.0 1.9 ? S Aug 13 00:07:36 BgpCliHelper\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1959 0.0 1.3 ? S Aug 13 00:22:47 ConnectedRoute\n 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1968 0.0 1.3 ? S Aug 13 00:07:27 RouteInput\n 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n\n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2597 0.0 1.1 ? S Aug 13 00:06:21 LicenseManager\n 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2638 0.0 0.0 ? S Aug 13 00:01:11 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console\n 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2697 0.0 1.2 ? S Aug 13 00:46:57 Ipsec\n 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3242 0.0 1.2 ? S Aug 13 00:49:34 Nat\n 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3263 0.0 1.4 ? S Aug 13 00:23:49 Vxlan\n 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3278 0.0 1.4 ? S Aug 13 00:25:03 VxlanSwFwd\n 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3317 0.0 0.1 ? Ssl Aug 13 00:03:45 /usr/libexec/strongswan/charon --use-syslog\n 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0]\n 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq\n26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26291 0.0 1.3 ? Sl Aug 26 00:06:34 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n26337 0.0 0.1 ? S Aug 26 00:02:44 nginx: worker process \n27065 0.0 0.0 ? S 16:48:00 00:00:00 [kworker/0:2]\n28488 0.0 0.0 ? S 16:53:01 00:00:00 [kworker/0:1]\n31812 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0]\n32207 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n32225 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:3]\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 123843, 'authorizationAllowed': 2759, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 2, 'authenticationUnavailable': 157, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 123846\n Failed: 2\n Service unavailable: 157\n\nAuthorization\n Allowed: 2759\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'125417': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600449473, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n125417 kgrozis command-api E 0:00:27 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 29, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 30 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.155, 'jitter': 0.451, 'lastReceived': 1600448869.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.512, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 636 1024 377 0.155 0.512 0.451\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281533.686326, 'pid': 1675, 'enabled': True, 'uptime': 3167972.05, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1675)\nUptime: 36 days, 15:59:32 (Start time: Thu Aug 13 01:18:53 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291584512 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291584512 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 113885, 'bytesOut': 321234963, 'lastHitTime': 1600449508.9372807, 'bytesIn': 18346616}}, 'bytesOut': 321234963, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 120408, 'vrf': 'default', 'lastHitTime': 1600449508.9372256, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 12720.290941609273, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 113885, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.15.101:443', 'Ethernet2 : https://11.201.15.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.3:443', 'Loopback10 : https://198.18.0.37:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 18346616, 'commandCount': 227770, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 120411\nLast hit: 0 seconds ago\nBytes in: 18347109\nBytes out: 321237581\nRequests: 113888\nCommands: 227776\nDuration: 12720.364 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 113888 18347109 321237581 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.15.101:443 \nEthernet2 : https://11.201.15.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.3:443 \nLoopback10 : https://198.18.0.37:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:35:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:34:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:43 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:52 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:16 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:57 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:55:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:35:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:34:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:43 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:52 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:16 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:57 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:55:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge2: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge2: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEOSEdge2| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-CloudEOSEdge2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281921.9977474, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281727.4354625, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.3', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281563.00588, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:35:02:ca:82:97', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.954437, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:ca:82:97', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281560.6477785, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:67:85:22:a7:80', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 88329.00396172017, 'inPktsRate': 58.29424532491097, 'outBitsRate': 49300.04571634091, 'updateInterval': 300.0, 'outPktsRate': 50.991496679408876}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 117381387, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.955529, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 21152521872, 'outDiscards': 0, 'outOctets': 13175192251, 'inUcastPkts': 129532156, 'inTotalPkts': 129532156, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281923.2268054, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281560.766413, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:35:02:47:e5:30', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 53258.55474912865, 'inPktsRate': 55.572673372748625, 'outBitsRate': 120059.25695161852, 'updateInterval': 300.0, 'outPktsRate': 65.66176156760062}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 139886724, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.961903, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 14091322662, 'outDiscards': 0, 'outOctets': 29642849346, 'inUcastPkts': 118849266, 'inTotalPkts': 118849266, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:47:e5:30', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281723.3885167, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.3'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281539.3698246, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.37'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 53.3 kbps (- with framing overhead), 56 packets/sec\n 5 minutes output rate 120 kbps (- with framing overhead), 66 packets/sec\n 118849266 packets input, 14091322662 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 139886724 packets output, 29642849346 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.4 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.3 kbps (- with framing overhead), 51 packets/sec\n 129532288 packets input, 21152547469 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 117381498 packets output, 13175205931 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 51 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 51 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 11 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 15 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 52 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 6 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge2', 'hostname': 'kg-topology-CloudEOSEdge2'}, 'text': 'Hostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3168028.41, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DE52F26D16E91F22BB1B507175C8C765', 'systemMacAddress': '06:35:02:ca:82:97', 'bootupTimestamp': 1597281468.0, 'memFree': 2896092, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 16 hours and 0 minutes\nTotal memory: 7761392 kB\nFree memory: 2882952 kB\n\n'}, 'show processes': {'json': {'processes': {'2025': {'totalActiveTime': 3213904, 'memPct': 3.7, 'cpuPct': 101.0, 'startTime': 1597281547.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '32227': {'totalActiveTime': 8, 'memPct': 0.6, 'cpuPct': 4.2, 'startTime': 1600449306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1675': {'totalActiveTime': 81682, 'memPct': 2.1, 'cpuPct': 2.5, 'startTime': 1597281532.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1476': {'totalActiveTime': 9860, 'memPct': 2.6, 'cpuPct': 0.3, 'startTime': 1597281508.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1518': {'totalActiveTime': 11825, 'memPct': 7.6, 'cpuPct': 0.3, 'startTime': 1597281511.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1243': {'totalActiveTime': 7842, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1951': {'totalActiveTime': 6709, 'memPct': 1.7, 'cpuPct': 0.2, 'startTime': 1597281544.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 4070, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281534.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 3371, 'memPct': 1.2, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 6261, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1980': {'totalActiveTime': 4110, 'memPct': 2.3, 'cpuPct': 0.1, 'startTime': 1597281546.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '3369': {'totalActiveTime': 6131, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281726.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 470, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 32, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '326': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449496.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '378': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '410': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '746': {'totalActiveTime': 223, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '770': {'totalActiveTime': 341, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '784': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '790': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '880': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '889': {'totalActiveTime': 27, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '998': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1000': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1015': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1019': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1021': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1031': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1062': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281482.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1189': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1190': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1224': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1226': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1228': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1242': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1415': {'totalActiveTime': 745, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281507.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1423': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1438': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1475': {'totalActiveTime': 172, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1517': {'totalActiveTime': 377, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1521': {'totalActiveTime': 1335, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1524': {'totalActiveTime': 658, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281512.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1651': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1653': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1654': {'totalActiveTime': 1818, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1659': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1661': {'totalActiveTime': 1348, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1665': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1666': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1668': {'totalActiveTime': 1471, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1669': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1698': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1699': {'totalActiveTime': 1437, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1701': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1702': {'totalActiveTime': 2672, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1709': {'totalActiveTime': 1363, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1710': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1610, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1716': {'totalActiveTime': 1779, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1723': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1724': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1725': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1730': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1731': {'totalActiveTime': 617, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 1048, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1736': {'totalActiveTime': 1357, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1738': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1741': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1743': {'totalActiveTime': 2988, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1756': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1759': {'totalActiveTime': 2186, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 445, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1789': {'totalActiveTime': 1352, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 1365, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1823': {'totalActiveTime': 2023, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1843': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1846': {'totalActiveTime': 1360, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1851': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1855': {'totalActiveTime': 1532, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 446, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1857': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1861': {'totalActiveTime': 447, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1862': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 1353, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1867': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1868': {'totalActiveTime': 379, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1870': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1871': {'totalActiveTime': 379, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1877': {'totalActiveTime': 1741, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1891': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1893': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 1371, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1944': {'totalActiveTime': 446, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1950': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1954': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1956': {'totalActiveTime': 456, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1958': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1959': {'totalActiveTime': 1367, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1962': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1963': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1968': {'totalActiveTime': 447, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2011': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2014': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2319': {'totalActiveTime': 34, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2592': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2596': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2597': {'totalActiveTime': 381, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2614': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2633': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 71, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2639': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2666': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281561.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2695': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2696': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2697': {'totalActiveTime': 2817, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2699': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2726': {'totalActiveTime': 174, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281564.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281567.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3232': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3237': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3242': {'totalActiveTime': 2974, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3254': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3257': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3263': {'totalActiveTime': 1429, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3275': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3277': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3278': {'totalActiveTime': 1503, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3315': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3317': {'totalActiveTime': 225, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3856': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281920.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '3977': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281922.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '26289': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '26290': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '26291': {'totalActiveTime': 394, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '26335': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '26337': {'totalActiveTime': 164, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '27065': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600447680.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '28488': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600447981.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '31812': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449001.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '32207': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '32225': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449305.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3168029.12, 'loadAvg': [1.51, 1.54, 1.46], 'users': 0, 'currentTime': 1600449496.835772}}, 'text': " 17:18:17 up 36 days, 16:00, 0 users, load average: 1.51, 1.54, 1.46\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2025 101 3.7 ? Sl Aug 13 37-04:45:05 Sfe\n32227 4.2 0.6 ? SNl 17:15:06 00:00:08 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1675 2.5 2.1 ? Sl Aug 13 22:41:22 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1476 0.3 2.6 ? S Aug 13 02:44:20 Sysdb\n 1518 0.3 7.6 ? Sl Aug 13 03:17:06 ConfigAgent\n 1243 0.2 0.9 ? S Aug 13 02:10:42 ProcMgr-worker\n 1951 0.2 1.7 ? S Aug 13 01:51:49 IpRib\n 1703 0.1 1.7 ? S Aug 13 01:07:50 SuperServer\n 1719 0.1 1.2 ? S Aug 13 00:56:11 StpTxRx\n 1727 0.1 1.0 ? S Aug 13 01:44:21 AgentMonitor\n 1980 0.1 2.3 ? Sl Aug 13 01:08:30 Bgp\n 3369 0.1 1.4 ? S Aug 13 01:42:11 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:07:50 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:21 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 342 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 746 0.0 0.0 ? Ss Aug 13 00:03:43 /usr/lib/systemd/systemd-logind\n 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor\n 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 770 0.0 0.1 ? Ss Aug 13 00:05:41 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n\n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60\n 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1415 0.0 0.0 ? S Aug 13 00:12:25 /usr/bin/EosOomAdjust\n 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu]\n 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1475 0.0 0.0 ? S Aug 13 00:02:52 /usr/bin/SlabMonitor\n 1517 0.0 1.2 ? S Aug 13 00:06:17 StageMgr\n 1521 0.0 1.4 ? S Aug 13 00:22:15 Fru\n 1524 0.0 1.8 ? S Aug 13 00:10:58 Launcher\n 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1654 0.0 1.3 ? S Aug 13 00:30:18 Lldp\n 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1661 0.0 1.2 ? S Aug 13 00:22:28 McastCommon\n 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1668 0.0 1.1 ? S Aug 13 00:24:31 PortSec\n 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1699 0.0 1.4 ? S Aug 13 00:23:57 Bfd\n 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1702 0.0 1.3 ? S Aug 13 00:44:32 Lag\n 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1709 0.0 1.5 ? S Aug 13 00:22:43 Ira\n 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:26:50 LedPolicy\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1716 0.0 1.3 ? S Aug 13 00:29:39 EventMgr\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1724 0.0 1.1 ? S Aug 13 00:06:20 StandbyCpld\n 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1731 0.0 1.2 ? S Aug 13 00:10:17 Tunnel\n 1732 0.0 1.6 ? Sl Aug 13 00:17:28 Aaa\n 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1736 0.0 1.2 ? S Aug 13 00:22:37 StpTopology\n 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1743 0.0 1.4 ? S Aug 13 00:49:48 Acl\n 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1759 0.0 1.1 ? S Aug 13 00:36:26 Stp\n 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.1 ? S Aug 13 00:07:25 KernelNetworkInfo\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1789 0.0 1.2 ? S Aug 13 00:22:32 McastCommon6\n 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.2 ? S Aug 13 00:22:45 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1823 0.0 1.5 ? S Aug 13 00:33:43 Arp\n 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1846 0.0 1.4 ? S Aug 13 00:22:40 KernelFib\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1855 0.0 1.2 ? S Aug 13 00:25:32 Qos\n 1856 0.0 1.1 ? S Aug 13 00:07:26 Thermostat\n 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1861 0.0 1.2 ? S Aug 13 00:07:27 L2Rib\n 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.2 ? S Aug 13 00:22:33 TopoAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1868 0.0 1.1 ? S Aug 13 00:06:19 PowerFuse\n 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1871 0.0 1.1 ? S Aug 13 00:06:19 PowerManager\n 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1877 0.0 1.4 ? S Aug 13 00:29:01 Ebra\n 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1893 0.0 1.1 ? S Aug 13 00:06:20 ReloadCauseAgent\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.1 ? S Aug 13 00:06:20 SharedSecretProfile\n 1905 0.0 1.5 ? S Aug 13 00:22:51 IgmpSnooping\n 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1944 0.0 1.3 ? S Aug 13 00:07:26 StaticRoute\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1956 0.0 1.9 ? S Aug 13 00:07:36 BgpCliHelper\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1959 0.0 1.3 ? S Aug 13 00:22:47 ConnectedRoute\n 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1968 0.0 1.3 ? S Aug 13 00:07:27 RouteInput\n 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n\n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2597 0.0 1.1 ? S Aug 13 00:06:21 LicenseManager\n 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2638 0.0 0.0 ? S Aug 13 00:01:11 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console\n 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2697 0.0 1.2 ? S Aug 13 00:46:57 Ipsec\n 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3242 0.0 1.2 ? S Aug 13 00:49:34 Nat\n 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3263 0.0 1.4 ? S Aug 13 00:23:49 Vxlan\n 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3278 0.0 1.4 ? S Aug 13 00:25:03 VxlanSwFwd\n 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3317 0.0 0.1 ? Ssl Aug 13 00:03:45 /usr/libexec/strongswan/charon --use-syslog\n 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0]\n 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq\n26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26291 0.0 1.3 ? Sl Aug 26 00:06:34 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n26337 0.0 0.1 ? S Aug 26 00:02:44 nginx: worker process \n27065 0.0 0.0 ? S 16:48:00 00:00:00 [kworker/0:2]\n28488 0.0 0.0 ? S 16:53:01 00:00:00 [kworker/0:1]\n31812 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0]\n32207 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n32225 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:3]\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 123843, 'authorizationAllowed': 2759, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 2, 'authenticationUnavailable': 157, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 123846\n Failed: 2\n Service unavailable: 157\n\nAuthorization\n Allowed: 2759\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'125417': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600449473, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n125417 kgrozis command-api E 0:00:27 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 29, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 30 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.155, 'jitter': 0.451, 'lastReceived': 1600448869.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.512, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 636 1024 377 0.155 0.512 0.451\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281533.686326, 'pid': 1675, 'enabled': True, 'uptime': 3167972.05, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1675)\nUptime: 36 days, 15:59:32 (Start time: Thu Aug 13 01:18:53 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291584512 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291584512 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 113885, 'bytesOut': 321234963, 'lastHitTime': 1600449508.9372807, 'bytesIn': 18346616}}, 'bytesOut': 321234963, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 120408, 'vrf': 'default', 'lastHitTime': 1600449508.9372256, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 12720.290941609273, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 113885, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.15.101:443', 'Ethernet2 : https://11.201.15.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.3:443', 'Loopback10 : https://198.18.0.37:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 18346616, 'commandCount': 227770, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 120411\nLast hit: 0 seconds ago\nBytes in: 18347109\nBytes out: 321237581\nRequests: 113888\nCommands: 227776\nDuration: 12720.364 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 113888 18347109 321237581 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.15.101:443 \nEthernet2 : https://11.201.15.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.3:443 \nLoopback10 : https://198.18.0.37:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:35:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:34:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:43 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:52 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:16 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:57 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:55:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:35:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:34:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:43 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:52 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:16 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:57 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:55:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge2: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge2: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEOSEdge2| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-CloudEOSEdge2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281921.9977474, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281727.4354625, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.3', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281563.00588, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:35:02:ca:82:97', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.954437, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:ca:82:97', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281560.6477785, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:67:85:22:a7:80', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 88329.00396172017, 'inPktsRate': 58.29424532491097, 'outBitsRate': 49300.04571634091, 'updateInterval': 300.0, 'outPktsRate': 50.991496679408876}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 117381387, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.955529, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 21152521872, 'outDiscards': 0, 'outOctets': 13175192251, 'inUcastPkts': 129532156, 'inTotalPkts': 129532156, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281923.2268054, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281560.766413, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:35:02:47:e5:30', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 53258.55474912865, 'inPktsRate': 55.572673372748625, 'outBitsRate': 120059.25695161852, 'updateInterval': 300.0, 'outPktsRate': 65.66176156760062}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 139886724, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600449493.961903, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 14091322662, 'outDiscards': 0, 'outOctets': 29642849346, 'inUcastPkts': 118849266, 'inTotalPkts': 118849266, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:47:e5:30', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281723.3885167, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.3'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281539.3698246, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.37'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 53.3 kbps (- with framing overhead), 56 packets/sec\n 5 minutes output rate 120 kbps (- with framing overhead), 66 packets/sec\n 118849266 packets input, 14091322662 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 139886724 packets output, 29642849346 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.4 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.3 kbps (- with framing overhead), 51 packets/sec\n 129532288 packets input, 21152547469 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 117381498 packets output, 13175205931 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 51 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 51 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 11 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 15 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 52 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 6 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge2', 'hostname': 'kg-topology-CloudEOSEdge2'}, 'text': 'Hostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3168028.41, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DE52F26D16E91F22BB1B507175C8C765', 'systemMacAddress': '06:35:02:ca:82:97', 'bootupTimestamp': 1597281468.0, 'memFree': 2896092, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 16 hours and 0 minutes\nTotal memory: 7761392 kB\nFree memory: 2882952 kB\n\n'}, 'show processes': {'json': {'processes': {'2025': {'totalActiveTime': 3213904, 'memPct': 3.7, 'cpuPct': 101.0, 'startTime': 1597281547.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '32227': {'totalActiveTime': 8, 'memPct': 0.6, 'cpuPct': 4.2, 'startTime': 1600449306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1675': {'totalActiveTime': 81682, 'memPct': 2.1, 'cpuPct': 2.5, 'startTime': 1597281532.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1476': {'totalActiveTime': 9860, 'memPct': 2.6, 'cpuPct': 0.3, 'startTime': 1597281508.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1518': {'totalActiveTime': 11825, 'memPct': 7.6, 'cpuPct': 0.3, 'startTime': 1597281511.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1243': {'totalActiveTime': 7842, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1951': {'totalActiveTime': 6709, 'memPct': 1.7, 'cpuPct': 0.2, 'startTime': 1597281544.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 4070, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281534.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 3371, 'memPct': 1.2, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 6261, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1980': {'totalActiveTime': 4110, 'memPct': 2.3, 'cpuPct': 0.1, 'startTime': 1597281546.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '3369': {'totalActiveTime': 6131, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281726.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 470, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 32, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '326': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449496.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '378': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '410': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '746': {'totalActiveTime': 223, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '770': {'totalActiveTime': 341, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '784': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '790': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '880': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '889': {'totalActiveTime': 27, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '998': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1000': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1015': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1019': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1021': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1031': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1062': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281482.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1189': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1190': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1224': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1226': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1228': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1242': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1415': {'totalActiveTime': 745, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281507.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1423': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1438': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1475': {'totalActiveTime': 172, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1517': {'totalActiveTime': 377, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1521': {'totalActiveTime': 1335, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1524': {'totalActiveTime': 658, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281512.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1651': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1653': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1654': {'totalActiveTime': 1818, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1659': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1661': {'totalActiveTime': 1348, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1665': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1666': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1668': {'totalActiveTime': 1471, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1669': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1698': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1699': {'totalActiveTime': 1437, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1701': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1702': {'totalActiveTime': 2672, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1709': {'totalActiveTime': 1363, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1710': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1610, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1716': {'totalActiveTime': 1779, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1723': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1724': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1725': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1730': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1731': {'totalActiveTime': 617, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 1048, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1736': {'totalActiveTime': 1357, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1738': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1741': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1743': {'totalActiveTime': 2988, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1756': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1759': {'totalActiveTime': 2186, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 445, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1789': {'totalActiveTime': 1352, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 1365, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1823': {'totalActiveTime': 2023, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1843': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1846': {'totalActiveTime': 1360, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1851': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1855': {'totalActiveTime': 1532, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 446, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1857': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1861': {'totalActiveTime': 447, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1862': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 1353, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1867': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1868': {'totalActiveTime': 379, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1870': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1871': {'totalActiveTime': 379, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1877': {'totalActiveTime': 1741, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1891': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1893': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 1371, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1944': {'totalActiveTime': 446, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1950': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1954': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1956': {'totalActiveTime': 456, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1958': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1959': {'totalActiveTime': 1367, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1962': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1963': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1968': {'totalActiveTime': 447, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2011': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2014': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2319': {'totalActiveTime': 34, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2592': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2596': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2597': {'totalActiveTime': 381, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2614': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2633': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 71, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2639': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2666': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281561.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2695': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2696': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2697': {'totalActiveTime': 2817, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2699': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2726': {'totalActiveTime': 174, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281564.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281567.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3232': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3237': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3242': {'totalActiveTime': 2974, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3254': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3257': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3263': {'totalActiveTime': 1429, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3275': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3277': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3278': {'totalActiveTime': 1503, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3315': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3317': {'totalActiveTime': 225, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3856': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281920.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '3977': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281922.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '26289': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '26290': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '26291': {'totalActiveTime': 394, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '26335': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '26337': {'totalActiveTime': 164, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '27065': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600447680.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '28488': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600447981.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '31812': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449001.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '32207': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '32225': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600449305.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3168029.12, 'loadAvg': [1.51, 1.54, 1.46], 'users': 0, 'currentTime': 1600449496.835772}}, 'text': " 17:18:17 up 36 days, 16:00, 0 users, load average: 1.51, 1.54, 1.46\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2025 101 3.7 ? Sl Aug 13 37-04:45:05 Sfe\n32227 4.2 0.6 ? SNl 17:15:06 00:00:08 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1675 2.5 2.1 ? Sl Aug 13 22:41:22 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1476 0.3 2.6 ? S Aug 13 02:44:20 Sysdb\n 1518 0.3 7.6 ? Sl Aug 13 03:17:06 ConfigAgent\n 1243 0.2 0.9 ? S Aug 13 02:10:42 ProcMgr-worker\n 1951 0.2 1.7 ? S Aug 13 01:51:49 IpRib\n 1703 0.1 1.7 ? S Aug 13 01:07:50 SuperServer\n 1719 0.1 1.2 ? S Aug 13 00:56:11 StpTxRx\n 1727 0.1 1.0 ? S Aug 13 01:44:21 AgentMonitor\n 1980 0.1 2.3 ? Sl Aug 13 01:08:30 Bgp\n 3369 0.1 1.4 ? S Aug 13 01:42:11 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:07:50 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:21 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 342 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 746 0.0 0.0 ? Ss Aug 13 00:03:43 /usr/lib/systemd/systemd-logind\n 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor\n 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 770 0.0 0.1 ? Ss Aug 13 00:05:41 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n\n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60\n 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1415 0.0 0.0 ? S Aug 13 00:12:25 /usr/bin/EosOomAdjust\n 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu]\n 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1475 0.0 0.0 ? S Aug 13 00:02:52 /usr/bin/SlabMonitor\n 1517 0.0 1.2 ? S Aug 13 00:06:17 StageMgr\n 1521 0.0 1.4 ? S Aug 13 00:22:15 Fru\n 1524 0.0 1.8 ? S Aug 13 00:10:58 Launcher\n 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1654 0.0 1.3 ? S Aug 13 00:30:18 Lldp\n 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1661 0.0 1.2 ? S Aug 13 00:22:28 McastCommon\n 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1668 0.0 1.1 ? S Aug 13 00:24:31 PortSec\n 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1699 0.0 1.4 ? S Aug 13 00:23:57 Bfd\n 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1702 0.0 1.3 ? S Aug 13 00:44:32 Lag\n 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1709 0.0 1.5 ? S Aug 13 00:22:43 Ira\n 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:26:50 LedPolicy\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1716 0.0 1.3 ? S Aug 13 00:29:39 EventMgr\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1724 0.0 1.1 ? S Aug 13 00:06:20 StandbyCpld\n 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1731 0.0 1.2 ? S Aug 13 00:10:17 Tunnel\n 1732 0.0 1.6 ? Sl Aug 13 00:17:28 Aaa\n 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1736 0.0 1.2 ? S Aug 13 00:22:37 StpTopology\n 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1743 0.0 1.4 ? S Aug 13 00:49:48 Acl\n 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1759 0.0 1.1 ? S Aug 13 00:36:26 Stp\n 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.1 ? S Aug 13 00:07:25 KernelNetworkInfo\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1789 0.0 1.2 ? S Aug 13 00:22:32 McastCommon6\n 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.2 ? S Aug 13 00:22:45 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1823 0.0 1.5 ? S Aug 13 00:33:43 Arp\n 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1846 0.0 1.4 ? S Aug 13 00:22:40 KernelFib\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1855 0.0 1.2 ? S Aug 13 00:25:32 Qos\n 1856 0.0 1.1 ? S Aug 13 00:07:26 Thermostat\n 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1861 0.0 1.2 ? S Aug 13 00:07:27 L2Rib\n 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.2 ? S Aug 13 00:22:33 TopoAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1868 0.0 1.1 ? S Aug 13 00:06:19 PowerFuse\n 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1871 0.0 1.1 ? S Aug 13 00:06:19 PowerManager\n 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1877 0.0 1.4 ? S Aug 13 00:29:01 Ebra\n 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1893 0.0 1.1 ? S Aug 13 00:06:20 ReloadCauseAgent\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.1 ? S Aug 13 00:06:20 SharedSecretProfile\n 1905 0.0 1.5 ? S Aug 13 00:22:51 IgmpSnooping\n 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1944 0.0 1.3 ? S Aug 13 00:07:26 StaticRoute\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1956 0.0 1.9 ? S Aug 13 00:07:36 BgpCliHelper\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1959 0.0 1.3 ? S Aug 13 00:22:47 ConnectedRoute\n 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1968 0.0 1.3 ? S Aug 13 00:07:27 RouteInput\n 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n\n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2597 0.0 1.1 ? S Aug 13 00:06:21 LicenseManager\n 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2638 0.0 0.0 ? S Aug 13 00:01:11 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console\n 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2697 0.0 1.2 ? S Aug 13 00:46:57 Ipsec\n 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3242 0.0 1.2 ? S Aug 13 00:49:34 Nat\n 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3263 0.0 1.4 ? S Aug 13 00:23:49 Vxlan\n 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3278 0.0 1.4 ? S Aug 13 00:25:03 VxlanSwFwd\n 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3317 0.0 0.1 ? Ssl Aug 13 00:03:45 /usr/libexec/strongswan/charon --use-syslog\n 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0]\n 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq\n26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26291 0.0 1.3 ? Sl Aug 26 00:06:34 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n26337 0.0 0.1 ? S Aug 26 00:02:44 nginx: worker process \n27065 0.0 0.0 ? S 16:48:00 00:00:00 [kworker/0:2]\n28488 0.0 0.0 ? S 16:53:01 00:00:00 [kworker/0:1]\n31812 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0]\n32207 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n32225 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:3]\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 123843, 'authorizationAllowed': 2759, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 2, 'authenticationUnavailable': 157, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 123846\n Failed: 2\n Service unavailable: 157\n\nAuthorization\n Allowed: 2759\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'125417': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600449473, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n125417 kgrozis command-api E 0:00:27 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 29, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 30 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.155, 'jitter': 0.451, 'lastReceived': 1600448869.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': 0.512, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 636 1024 377 0.155 0.512 0.451\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281533.686326, 'pid': 1675, 'enabled': True, 'uptime': 3167972.05, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1675)\nUptime: 36 days, 15:59:32 (Start time: Thu Aug 13 01:18:53 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291584512 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291584512 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 113885, 'bytesOut': 321234963, 'lastHitTime': 1600449508.9372807, 'bytesIn': 18346616}}, 'bytesOut': 321234963, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 120408, 'vrf': 'default', 'lastHitTime': 1600449508.9372256, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 12720.290941609273, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 113885, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.15.101:443', 'Ethernet2 : https://11.201.15.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.3:443', 'Loopback10 : https://198.18.0.37:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 18346616, 'commandCount': 227770, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 120411\nLast hit: 0 seconds ago\nBytes in: 18347109\nBytes out: 321237581\nRequests: 113888\nCommands: 227776\nDuration: 12720.364 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 113888 18347109 321237581 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.15.101:443 \nEthernet2 : https://11.201.15.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.3:443 \nLoopback10 : https://198.18.0.37:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:35:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:34:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:43 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:52 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:16 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:57 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:55:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 14:35:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:14:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:15:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:30:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:31:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:32:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:33:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:34:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:19 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:46:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:43 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:47:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:48:52 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:49:16 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 16:54:57 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 16:55:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:08:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 17:09:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 17:17:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge2: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge2: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest does not have input errors | 0.67 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| inErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:256 TEST if interface |Ethernet1| counters has input errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:258 GIVEN interface input errors of |0| INFO root:test_interface.py:260 WHEN interface input errors is |{actual_output}| INFO root:test_interface.py:267 THEN test case result is |{test_result}| INFO root:test_interface.py:268 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:test_interface.py:256 TEST if interface |Ethernet2| counters has input errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:258 GIVEN interface input errors of |0| INFO root:test_interface.py:260 WHEN interface input errors is |{actual_output}| INFO root:test_interface.py:267 THEN test case result is |{test_result}| INFO root:test_interface.py:268 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest does not have output errors | 0.78 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| outErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:305 TEST if interface |Ethernet1| counters has output errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:307 GIVEN interface output errors of |0| INFO root:test_interface.py:309 WHEN interface output errors is |{actual_output}| INFO root:test_interface.py:316 THEN test case result is |{test_result}| INFO root:test_interface.py:317 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:test_interface.py:305 TEST if interface |Ethernet2| counters has output errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:307 GIVEN interface output errors of |0| INFO root:test_interface.py:309 WHEN interface output errors is |{actual_output}| INFO root:test_interface.py:316 THEN test case result is |{test_result}| INFO root:test_interface.py:317 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest physical state is link up | 0.57 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEOSEdge2 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:370 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:417 Verify if kg-topology-CloudEOSEdge2 DUT is a VEOS instance INFO root:tests_tools.py:421 kg-topology-CloudEOSEdge2 is a VEOS instance so returning True INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_phy_status_connected_on_ exists in results file at index 6 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'actual_output': None, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no frameLongShorts errors | 0.82 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| frameTooLongs, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:404 TEST if interface |Ethernet1| counters has frameTooLongs errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:406 GIVEN interface frameTooLongs errors of |0| INFO root:test_interface.py:408 WHEN interface frameTooLongs errors is |0| INFO root:test_interface.py:416 THEN test case result is |{test_result}| INFO root:test_interface.py:417 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 7 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:test_interface.py:404 TEST if interface |Ethernet2| counters has frameTooLongs errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:406 GIVEN interface frameTooLongs errors of |0| INFO root:test_interface.py:408 WHEN interface frameTooLongs errors is |0| INFO root:test_interface.py:416 THEN test case result is |{test_result}| INFO root:test_interface.py:417 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 7 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_alignment_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no alignmentErrors errors | 0.61 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| alignmentErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:504 TEST if interface |Ethernet1| counters has alignmentErrors errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:506 GIVEN interface alignmentErrors errors of |0| INFO root:test_interface.py:508 WHEN interface alignmentErrors errors is |0| INFO root:test_interface.py:516 THEN test case result is |{test_result}| INFO root:test_interface.py:517 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_alignment_errors_on_ with parameters {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:test_interface.py:504 TEST if interface |Ethernet2| counters has alignmentErrors errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:506 GIVEN interface alignmentErrors errors of |0| INFO root:test_interface.py:508 WHEN interface alignmentErrors errors is |0| INFO root:test_interface.py:516 THEN test case result is |{test_result}| INFO root:test_interface.py:517 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_out_counters_are_discarding_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no outDiscards | 0.63 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - - On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0| - - On interface |Ethernet2|: interface counter discards has |0| outDiscards, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:619 TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:621 GIVEN interface outbound discards of |0| INFO root:test_interface.py:623 WHEN interface outbound discards are |0| INFO root:test_interface.py:632 THEN test case result is |{test_result}| INFO root:test_interface.py:633 OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 9 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_out_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:test_interface.py:619 TEST if interface |Ethernet2| counters has outbound discards on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:621 GIVEN interface outbound discards of |0| INFO root:test_interface.py:623 WHEN interface outbound discards are |0| INFO root:test_interface.py:632 THEN test case result is |{test_result}| INFO root:test_interface.py:633 OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 9 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEOSEdge2] | Verify local log messages | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| message |critical| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |warning| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |ECC| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |servers errors| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show logging| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show logging| on kg-topology-CloudEOSEdge2 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:35:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:34:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:43 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:52 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:49:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:16 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:57 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:55:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:35:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:34:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:43 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:52 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:49:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:16 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:57 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:55:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:35:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:34:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:43 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:52 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:49:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:16 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:57 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:55:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:35:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:34:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:43 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:52 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:49:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:16 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:57 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:55:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 14:35:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:14:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:15:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:15:26 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:30:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:31:20 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:31:27 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:32:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:33:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:34:00 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:34:06 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:09 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:46:19 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:46:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:22 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:47:43 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:47:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:48:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:48:52 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:49:10 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:49:16 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:54:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 16:54:57 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 16:55:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:08:36 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:09:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 17:09:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 17:17:53 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_fcs_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no fcsErrors errors | 1.71 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| fcsErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:454 TEST if interface |Ethernet1| counters has fcsErrors errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:456 GIVEN interface fcsErrors errors of |0| INFO root:test_interface.py:458 WHEN interface fcsErrors errors is |0| INFO root:test_interface.py:466 THEN test case result is |{test_result}| INFO root:test_interface.py:467 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 3 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_fcs_errors_on_ with parameters {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:test_interface.py:454 TEST if interface |Ethernet2| counters has fcsErrors errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:456 GIVEN interface fcsErrors errors of |0| INFO root:test_interface.py:458 WHEN interface fcsErrors errors is |0| INFO root:test_interface.py:466 THEN test case result is |{test_result}| INFO root:test_interface.py:467 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 3 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEOSEdge2] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show ntp status| on kg-topology-CloudEOSEdge2 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEOSEdge2| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 30 ms polling server every 1024 s | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEOSEdge2] | Verify ntp peers are correct | 0.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show ntp associations| on kg-topology-CloudEOSEdge2 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEOSEdge2| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 635 1024 377 0.155 0.512 0.451 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no frameTooShorts errors | 3.18 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| frameTooShorts, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:354 TEST if interface |Ethernet1| counters has frameTooShorts errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:356 GIVEN interface frameTooShorts errors of |0| INFO root:test_interface.py:358 WHEN interface frameTooShorts errors is |0| INFO root:test_interface.py:366 THEN test case result is |{test_result}| INFO root:test_interface.py:367 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 53.3 kbps (- with framing overhead), 56 packets/sec\n 5 minutes output rate 120 kbps (- with framing overhead), 66 packets/sec\n 118849266 packets input, 14091322662 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 139886724 packets output, 29642849346 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.4 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.3 kbps (- with framing overhead), 51 packets/sec\n 129532288 packets input, 21152547469 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 117381498 packets output, 13175205931 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 51 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 51 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 11 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 15 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 52 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 6 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:test_interface.py:354 TEST if interface |Ethernet2| counters has frameTooShorts errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:356 GIVEN interface frameTooShorts errors of |0| INFO root:test_interface.py:358 WHEN interface frameTooShorts errors is |0| INFO root:test_interface.py:366 THEN test case result is |{test_result}| INFO root:test_interface.py:367 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 53.3 kbps (- with framing overhead), 56 packets/sec\n 5 minutes output rate 120 kbps (- with framing overhead), 66 packets/sec\n 118849266 packets input, 14091322662 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 139886724 packets output, 29642849346 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.4 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.3 kbps (- with framing overhead), 51 packets/sec\n 129532288 packets input, 21152547469 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 117381498 packets output, 13175205931 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 51 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 51 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 11 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 15 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 52 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 6 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEOSEdge2] | Verify tacacs messages are sending correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:394 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:400 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEOSEdge2| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEOSEdge2] | Verify username is set correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| |ec2-user| username is |configured| On router |kg-topology-CloudEOSEdge2| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show running-config section username| on kg-topology-CloudEOSEdge2 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEOSEdge2| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEOSEdge2| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_in_counters_are_discarding_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no inDiscards | 1.09 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2|. GIVEN interface outbound discards of |0|. WHEN interface outbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 - On interface |Ethernet2|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet2| counters has outbound discards on |kg-topology-CloudEOSEdge2|. GIVEN interface outbound discards of |0|. WHEN interface outbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 53.3 kbps (- with framing overhead), 56 packets/sec\n 5 minutes output rate 120 kbps (- with framing overhead), 66 packets/sec\n 118849266 packets input, 14091322662 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 139886724 packets output, 29642849346 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.4 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.3 kbps (- with framing overhead), 51 packets/sec\n 129532288 packets input, 21152547469 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 117381498 packets output, 13175205931 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 51 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 51 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 11 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 15 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 52 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 6 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 5 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_in_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'fail_reason': '', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2'} INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 53.3 kbps (- with framing overhead), 56 packets/sec\n 5 minutes output rate 120 kbps (- with framing overhead), 66 packets/sec\n 118849266 packets input, 14091322662 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 139886724 packets output, 29642849346 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.4 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.3 kbps (- with framing overhead), 51 packets/sec\n 129532288 packets input, 21152547469 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 117381498 packets output, 13175205931 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 51 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 51 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 11 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 15 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 52 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 6 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 5 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEOSEdge2] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEOSEdge2 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEOSEdge2| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7291584512 bytes free) | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEOSEdge2] | Verify memory is not exceeding high utlization | 1.11 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |dut_name| memory utilization percent is |37.3127913137231%| and should be under 70% -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show version| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show version| on kg-topology-CloudEOSEdge2 INFO root:test_memory.py:71 TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_memory.py:73 GIVEN memory utilization is less than |70%| INFO root:test_memory.py:80 WHEN memory utilization is |37.3127913137231| INFO root:test_memory.py:83 THEN test case result is |True%| INFO root:test_memory.py:84 OUTPUT of |show version| is : Arista vEOS Hardware version: Serial number: DE52F26D16E91F22BB1B507175C8C765 System MAC address: 0635.02ca.8297 Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 5 weeks, 1 days, 16 hours and 0 minutes Total memory: 7761392 kB Free memory: 2883596 kB INFO root:tests_tools.py:502 Find the Index for test suite: test_memory.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 53.3 kbps (- with framing overhead), 56 packets/sec\n 5 minutes output rate 120 kbps (- with framing overhead), 66 packets/sec\n 118849266 packets input, 14091322662 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 139886724 packets output, 29642849346 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.4 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.3 kbps (- with framing overhead), 51 packets/sec\n 129532288 packets input, 21152547469 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 117381498 packets output, 13175205931 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 51 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 51 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 11 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 15 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 52 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 6 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_memory.py exists in results file at index 1 INFO root:tests_tools.py:517 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_memory_utilization_on_ exists in results file at index 0 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True, 'actual_output': 37.3127913137231, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEOSEdge2] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEOSEdge2| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 17:18:17 up 36 days, 16:00, 0 users, load average: 1.51, 1.54, 1.46 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 37-04:45:05 Sfe 32227 4.2 0.6 ? SNl 17:15:06 00:00:08 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1675 2.5 2.1 ? Sl Aug 13 22:41:22 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 1476 0.3 2.6 ? S Aug 13 02:44:20 Sysdb 1518 0.3 7.6 ? Sl Aug 13 03:17:06 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:10:42 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 01:51:49 IpRib 1703 0.1 1.7 ? S Aug 13 01:07:50 SuperServer 1719 0.1 1.2 ? S Aug 13 00:56:11 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:44:21 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:08:30 Bgp 3369 0.1 1.4 ? S Aug 13 01:42:11 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:07:50 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:21 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 333 0.0 0.0 ? Rs 17:18:16 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 334 0.0 4.8 ? R 17:18:16 00:00:00 ConfigAgent 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:03:43 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:05:41 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:12:25 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:02:52 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:06:17 StageMgr 1521 0.0 1.4 ? S Aug 13 00:22:15 Fru 1524 0.0 1.8 ? S Aug 13 00:10:58 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:30:18 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:22:28 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:24:31 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:23:57 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:44:32 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:22:43 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:26:50 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:29:39 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:06:20 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:10:17 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:17:28 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:22:37 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:49:48 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:36:26 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:07:25 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:22:32 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:22:45 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:33:43 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:22:40 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:25:32 Qos 1856 0.0 1.1 ? S Aug 13 00:07:26 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:07:27 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:22:33 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:06:19 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:06:19 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:29:01 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:06:20 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:06:20 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:22:51 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:07:26 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:07:36 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:22:47 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:07:27 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:06:21 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:11 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:46:57 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:49:34 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:23:49 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:25:03 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:03:45 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:06:34 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:02:44 nginx: worker process 27065 0.0 0.0 ? S 16:48:00 00:00:00 [kworker/0:2] 28488 0.0 0.0 ? S 16:53:01 00:00:00 [kworker/0:1] 31812 0.0 0.0 ? S 17:10:01 00:00:00 [kworker/0:0] 32207 0.0 0.0 ? S 17:15:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 32225 0.0 0.0 ? S 17:15:05 00:00:00 [kworker/0:3] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEOSEdge2] | Verify tacacs messages are received correctly | 0.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:394 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:400 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEOSEdge2| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_symbol_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no alignmentErrors errors | 1.36 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0| - On interface |Ethernet2|: interface counter errors has |0| symbolErrors, correct state is |0| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:370 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:test_interface.py:554 TEST if interface |Ethernet1| counters has symbolErrors errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:556 GIVEN interface symbolErrors errors of |0| INFO root:test_interface.py:558 WHEN interface symbolErrors errors is |0| INFO root:test_interface.py:568 THEN test case result is |{test_result}| INFO root:test_interface.py:569 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 53.3 kbps (- with framing overhead), 56 packets/sec\n 5 minutes output rate 120 kbps (- with framing overhead), 66 packets/sec\n 118849266 packets input, 14091322662 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 139886724 packets output, 29642849346 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.4 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.3 kbps (- with framing overhead), 51 packets/sec\n 129532288 packets input, 21152547469 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 117381498 packets output, 13175205931 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 51 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 51 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 11 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 15 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 52 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 6 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 37.3127913137231, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:534 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_symbol_errors_on_ with parameters {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'actual_output': 0, 'test_result': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:test_interface.py:554 TEST if interface |Ethernet2| counters has symbolErrors errors on |kg-topology-CloudEOSEdge2| INFO root:test_interface.py:556 GIVEN interface symbolErrors errors of |0| INFO root:test_interface.py:558 WHEN interface symbolErrors errors is |0| INFO root:test_interface.py:568 THEN test case result is |{test_result}| INFO root:test_interface.py:569 OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 INFO root:tests_tools.py:502 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:504 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'connected', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface outbound discards of |0|.\nWHEN interface outbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}, {'actual_output': None, 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'show_cmd': 'show interfaces phy detail', 'test_result': True}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}, {'actual_output': 'up', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'show_cmd': 'show interfaces status', 'test_result': True}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'show_cmd': 'show interfaces counters discards', 'test_result': True}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}, {'actual_output': 0, 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'show_cmd': 'show interfaces counters errors', 'test_result': True}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 58 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 28.2 kbps (- with framing overhead), 27 packets/sec\n 5 minutes output rate 50.6 kbps (- with framing overhead), 30 packets/sec\n 70991357 packets input, 8866267671 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79207233 packets output, 15115021169 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 56 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 17 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 21 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 3 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 29.1 kbps (- with framing overhead), 28 packets/sec\n 5 minutes output rate 52.2 kbps (- with framing overhead), 31 packets/sec\n 72053959 packets input, 8989490394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 80748895 packets output, 15246095148 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 1 second\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 24 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 36.4 kbps (- with framing overhead), 36 packets/sec\n 5 minutes output rate 75.4 kbps (- with framing overhead), 41 packets/sec\n 142372983 packets input, 16704049845 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 169440803 packets output, 36196207269 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 16 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.5 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.4 kbps (- with framing overhead), 32 packets/sec\n 160820429 packets input, 29266524683 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142184931 packets output, 16792422526 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 55 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 59 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 40 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 31 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 55 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 38 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 53.3 kbps (- with framing overhead), 56 packets/sec\n 5 minutes output rate 120 kbps (- with framing overhead), 66 packets/sec\n 118849266 packets input, 14091322662 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 139886724 packets output, 29642849346 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 53 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 88.4 kbps (- with framing overhead), 58 packets/sec\n 5 minutes output rate 49.3 kbps (- with framing overhead), 51 packets/sec\n 129532288 packets input, 21152547469 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 117381498 packets output, 13175205931 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 15 hours, 52 minutes, 51 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 15 hours, 58 minutes, 51 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 56 minutes, 11 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 15 hours, 59 minutes, 15 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 52 minutes, 52 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 15 hours, 56 minutes, 6 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'show_cmd': 'show interfaces', 'test_result': False}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.14125095086036, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 38.41961155869696, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 36.36700356681693, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}, {'actual_output': 37.3127913137231, 'comment': None, 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'result': True, 'show_cmd': 'show version', 'test_result': True}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:509 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:517 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 4 INFO root:tests_tools.py:530 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEOSEdge2] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:633 Opening tests_definitions.yaml for write INFO root:tests_tools.py:637 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:620 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:370 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:374 Verified output for show command |show zerotouch| on kg-topology-CloudEOSEdge2 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEOSEdge2| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||